diff --git a/BlueprintUILists.podspec b/BlueprintUILists.podspec index e41ce17f7..3a8a389a4 100644 --- a/BlueprintUILists.podspec +++ b/BlueprintUILists.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'BlueprintUILists' - s.version = '0.14.2' + s.version = '0.15.0' s.summary = 'Declarative list views for iOS apps that deploy back to iOS 11.0.' s.homepage = 'https://github.com/kyleve/Listable' s.license = 'Apache License, Version 2.0' diff --git a/CHANGELOG.md b/CHANGELOG.md index 13b434b4b..0ef730580 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,27 +4,33 @@ ### Added -- [Introduce support for layout customization for `Item`, `HeaderFooter`, and `Section`](https://github.com/kyleve/Listable/pull/257) for all `ListLayout` types, not just `.table`. - -- [Add `inserted` and `removed` items to `.onContentChanged`](https://github.com/kyleve/Listable/pull/260), to easily determine what content was added or removed from the list a central location. - ### Removed ### Changed -- [Rename `.list` layout to `.table`](https://github.com/kyleve/Listable/pull/258), which is clearer, and also reduces confusion between `ListLayout` (the base protocol for layouts), and the specific table-type layout. - ### Misc # Past Releases -# [0.14.2] - 2020-01-21 +# [0.15.0] - 2021-01-22 + +### Added + +- [Introduce support for layout customization for `Item`, `HeaderFooter`, and `Section`](https://github.com/kyleve/Listable/pull/257) for all `ListLayout` types, not just `.table`. + +- [Add `inserted` and `removed` items to `.onContentChanged`](https://github.com/kyleve/Listable/pull/260), to easily determine what content was added or removed from the list a central location. + +### Changed + +- [Rename `.list` layout to `.table`](https://github.com/kyleve/Listable/pull/258), which is clearer, and also reduces confusion between `ListLayout` (the base protocol for layouts), and the specific table-type layout. + +# [0.14.2] - 2021-01-21 ### Fixed - `SwipeActionsConfiguration.performsFirstActionWithFullSwipe` is now respected when set to `false`. -# [0.14.1] - 2020-01-06 +# [0.14.1] - 2021-01-06 ### Fixed @@ -279,7 +285,8 @@ Earlier releases were ad-hoc and not tracked. To see all changes, please reference [closed PRs on Github](https://github.com/kyleve/Listable/pulls?q=is%3Apr+is%3Aclosed). -[Main]: https://github.com/kyleve/Listable/compare/0.14.2...HEAD +[Main]: https://github.com/kyleve/Listable/compare/0.15.0...HEAD +[0.15.0]: https://github.com/kyleve/Listable/compare/0.14.2...0.15.0 [0.14.1]: https://github.com/kyleve/Listable/compare/0.14.1...0.14.2 [0.14.1]: https://github.com/kyleve/Listable/compare/0.13.0...0.14.1 [0.13.0]: https://github.com/kyleve/Listable/compare/0.12.1...0.13.0 diff --git a/ListableUI.podspec b/ListableUI.podspec index bd27a4f1c..8f46fc45b 100644 --- a/ListableUI.podspec +++ b/ListableUI.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'ListableUI' - s.version = '0.14.2' + s.version = '0.15.0' s.summary = 'Declarative list views for iOS apps that deploy back to iOS 11.0.' s.homepage = 'https://github.com/kyleve/Listable' s.license = 'Apache License, Version 2.0' diff --git a/Podfile.lock b/Podfile.lock index c59683520..f4e54cfc5 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -2,15 +2,15 @@ PODS: - BlueprintUI (0.20.0) - BlueprintUICommonControls (0.20.0): - BlueprintUI - - BlueprintUILists (0.14.2): + - BlueprintUILists (0.15.0): - BlueprintUI - ListableUI - - BlueprintUILists/Tests (0.14.2): + - BlueprintUILists/Tests (0.15.0): - BlueprintUI - ListableUI - EnglishDictionary (1.0.0.LOCAL) - - ListableUI (0.14.2) - - ListableUI/Tests (0.14.2): + - ListableUI (0.15.0) + - ListableUI/Tests (0.15.0): - EnglishDictionary - Snapshot - Snapshot (1.0.0.LOCAL) @@ -45,9 +45,9 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: BlueprintUI: d26766f3e006d1f9348cba6a7f15efc64da74cb3 BlueprintUICommonControls: b7b6a10581203f4bd6283c9d2a9b810d513d804b - BlueprintUILists: afcc5b470731c70d1c2952ee4c24e6bcd566a2bd + BlueprintUILists: f18013df0909d82d463c3a18f4c477b2034040c0 EnglishDictionary: f03968b9382ddc5c8dd63535efbf783c6cd45f1c - ListableUI: 40e95b6299084145f04b421353612efbf9f50672 + ListableUI: fc0cb30981776da135ac6e50792c8e1ba9aa6b9f Snapshot: cda3414db426919d09f775434b36289c8e864183 PODFILE CHECKSUM: c1209f66d9213201c70fd26a2f0907a6e29e8cbe diff --git a/docs/BlueprintLists/Extensions.html b/docs/BlueprintLists/Extensions.html index 5f71a7324..696827983 100644 --- a/docs/BlueprintLists/Extensions.html +++ b/docs/BlueprintLists/Extensions.html @@ -208,7 +208,7 @@

Declaration

diff --git a/docs/BlueprintLists/Extensions/Element.html b/docs/BlueprintLists/Extensions/Element.html index 8e06b6633..d94ba14fb 100644 --- a/docs/BlueprintLists/Extensions/Element.html +++ b/docs/BlueprintLists/Extensions/Element.html @@ -160,7 +160,7 @@

Declaration

diff --git a/docs/BlueprintLists/Extensions/HeaderFooter.html b/docs/BlueprintLists/Extensions/HeaderFooter.html index 12bab46e6..4b0669848 100644 --- a/docs/BlueprintLists/Extensions/HeaderFooter.html +++ b/docs/BlueprintLists/Extensions/HeaderFooter.html @@ -253,7 +253,7 @@

Declaration

diff --git a/docs/BlueprintLists/Extensions/Item.html b/docs/BlueprintLists/Extensions/Item.html index c3078e3fb..3f627d345 100644 --- a/docs/BlueprintLists/Extensions/Item.html +++ b/docs/BlueprintLists/Extensions/Item.html @@ -257,7 +257,7 @@

Declaration

diff --git a/docs/BlueprintLists/Protocols.html b/docs/BlueprintLists/Protocols.html index 8e78f7900..c45db4c6f 100644 --- a/docs/BlueprintLists/Protocols.html +++ b/docs/BlueprintLists/Protocols.html @@ -269,7 +269,7 @@

Declaration

diff --git a/docs/BlueprintLists/Protocols/BlueprintHeaderFooterContent.html b/docs/BlueprintLists/Protocols/BlueprintHeaderFooterContent.html index 6cdd663c7..ca8e7b7c7 100644 --- a/docs/BlueprintLists/Protocols/BlueprintHeaderFooterContent.html +++ b/docs/BlueprintLists/Protocols/BlueprintHeaderFooterContent.html @@ -423,7 +423,7 @@

Declaration

diff --git a/docs/BlueprintLists/Protocols/BlueprintItemContent.html b/docs/BlueprintLists/Protocols/BlueprintItemContent.html index 3c6fc614b..8a6010d43 100644 --- a/docs/BlueprintLists/Protocols/BlueprintItemContent.html +++ b/docs/BlueprintLists/Protocols/BlueprintItemContent.html @@ -434,7 +434,7 @@

Declaration

diff --git a/docs/BlueprintLists/Structs.html b/docs/BlueprintLists/Structs.html index 90964f5f7..fd197d222 100644 --- a/docs/BlueprintLists/Structs.html +++ b/docs/BlueprintLists/Structs.html @@ -291,7 +291,7 @@

Declaration

diff --git a/docs/BlueprintLists/Structs/BlueprintHeaderFooterContentWrapper.html b/docs/BlueprintLists/Structs/BlueprintHeaderFooterContentWrapper.html index 6c7d5608e..8ee51f192 100644 --- a/docs/BlueprintLists/Structs/BlueprintHeaderFooterContentWrapper.html +++ b/docs/BlueprintLists/Structs/BlueprintHeaderFooterContentWrapper.html @@ -268,7 +268,7 @@

Declaration

diff --git a/docs/BlueprintLists/Structs/BlueprintItemContentWrapper.html b/docs/BlueprintLists/Structs/BlueprintItemContentWrapper.html index 36a495d0e..9d8a34a1e 100644 --- a/docs/BlueprintLists/Structs/BlueprintItemContentWrapper.html +++ b/docs/BlueprintLists/Structs/BlueprintItemContentWrapper.html @@ -293,7 +293,7 @@

Declaration

diff --git a/docs/BlueprintLists/Structs/List.html b/docs/BlueprintLists/Structs/List.html index 9e9046f1e..71701d128 100644 --- a/docs/BlueprintLists/Structs/List.html +++ b/docs/BlueprintLists/Structs/List.html @@ -332,7 +332,7 @@

Declaration

diff --git a/docs/BlueprintLists/Structs/ListReorderGesture.html b/docs/BlueprintLists/Structs/ListReorderGesture.html index 10c4971bb..5f0fa2c2f 100644 --- a/docs/BlueprintLists/Structs/ListReorderGesture.html +++ b/docs/BlueprintLists/Structs/ListReorderGesture.html @@ -309,7 +309,7 @@

Declaration

diff --git a/docs/BlueprintLists/Typealiases.html b/docs/BlueprintLists/Typealiases.html index 12554e63d..5daf840fc 100644 --- a/docs/BlueprintLists/Typealiases.html +++ b/docs/BlueprintLists/Typealiases.html @@ -181,7 +181,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions.html index 5f71a7324..696827983 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions.html @@ -208,7 +208,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/Element.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/Element.html index 8e06b6633..d94ba14fb 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/Element.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/Element.html @@ -160,7 +160,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/HeaderFooter.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/HeaderFooter.html index 12bab46e6..4b0669848 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/HeaderFooter.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/HeaderFooter.html @@ -253,7 +253,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/Item.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/Item.html index c3078e3fb..3f627d345 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/Item.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Extensions/Item.html @@ -257,7 +257,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols.html index 8e78f7900..c45db4c6f 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols.html @@ -269,7 +269,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols/BlueprintHeaderFooterContent.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols/BlueprintHeaderFooterContent.html index 6cdd663c7..ca8e7b7c7 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols/BlueprintHeaderFooterContent.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols/BlueprintHeaderFooterContent.html @@ -423,7 +423,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols/BlueprintItemContent.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols/BlueprintItemContent.html index 3c6fc614b..8a6010d43 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols/BlueprintItemContent.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Protocols/BlueprintItemContent.html @@ -434,7 +434,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs.html index 90964f5f7..fd197d222 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs.html @@ -291,7 +291,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/BlueprintHeaderFooterContentWrapper.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/BlueprintHeaderFooterContentWrapper.html index 6c7d5608e..8ee51f192 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/BlueprintHeaderFooterContentWrapper.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/BlueprintHeaderFooterContentWrapper.html @@ -268,7 +268,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/BlueprintItemContentWrapper.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/BlueprintItemContentWrapper.html index 36a495d0e..9d8a34a1e 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/BlueprintItemContentWrapper.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/BlueprintItemContentWrapper.html @@ -293,7 +293,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/List.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/List.html index 9e9046f1e..71701d128 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/List.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/List.html @@ -332,7 +332,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/ListReorderGesture.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/ListReorderGesture.html index 10c4971bb..5f0fa2c2f 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/ListReorderGesture.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Structs/ListReorderGesture.html @@ -309,7 +309,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Typealiases.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Typealiases.html index 12554e63d..5daf840fc 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Typealiases.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/Typealiases.html @@ -181,7 +181,7 @@

Declaration

diff --git a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/index.html b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/index.html index e290d5c8b..8ef7746fa 100644 --- a/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/index.html +++ b/docs/BlueprintLists/docsets/BlueprintLists.docset/Contents/Resources/Documents/index.html @@ -194,12 +194,12 @@

Highly Customizable

public var stickySectionHeaders : Bool - public var list : ListAppearance + public var list : TableAppearance } -

You use the ListAppearance.Sizing struct to control the default measurements within the list: How tall are standard rows, headers, footers, etc.

-
public struct ListAppearance.Sizing : Equatable
+

You use the TableAppearance.Sizing struct to control the default measurements within the list: How tall are standard rows, headers, footers, etc.

+
public struct TableAppearance.Sizing : Equatable
 {
     public var itemHeight : CGFloat
 
@@ -213,8 +213,8 @@ 

Highly Customizable

}
-

You can use ListAppearance.Layout to customize the padding of the entire list, how wide the list should be (eg, up to 700px, more than 400px, etc) plus control spacing between items, headers, and footers.

-
public struct ListAppearance.Layout : Equatable
+

You can use TableAppearance.Layout to customize the padding of the entire list, how wide the list should be (eg, up to 700px, more than 400px, etc) plus control spacing between items, headers, and footers.

+
public struct TableAppearance.Layout : Equatable
 {
     public var padding : UIEdgeInsets
     public var width : WidthConstraint
@@ -768,7 +768,7 @@ 
       
     
     
   
diff --git a/docs/BlueprintLists/docsets/BlueprintLists.tgz b/docs/BlueprintLists/docsets/BlueprintLists.tgz
index 41973c1ef..ed93cd4c9 100644
Binary files a/docs/BlueprintLists/docsets/BlueprintLists.tgz and b/docs/BlueprintLists/docsets/BlueprintLists.tgz differ
diff --git a/docs/BlueprintLists/index.html b/docs/BlueprintLists/index.html
index e290d5c8b..8ef7746fa 100644
--- a/docs/BlueprintLists/index.html
+++ b/docs/BlueprintLists/index.html
@@ -194,12 +194,12 @@ 

Highly Customizable

public var stickySectionHeaders : Bool - public var list : ListAppearance + public var list : TableAppearance }
-

You use the ListAppearance.Sizing struct to control the default measurements within the list: How tall are standard rows, headers, footers, etc.

-
public struct ListAppearance.Sizing : Equatable
+

You use the TableAppearance.Sizing struct to control the default measurements within the list: How tall are standard rows, headers, footers, etc.

+
public struct TableAppearance.Sizing : Equatable
 {
     public var itemHeight : CGFloat
 
@@ -213,8 +213,8 @@ 

Highly Customizable

}
-

You can use ListAppearance.Layout to customize the padding of the entire list, how wide the list should be (eg, up to 700px, more than 400px, etc) plus control spacing between items, headers, and footers.

-
public struct ListAppearance.Layout : Equatable
+

You can use TableAppearance.Layout to customize the padding of the entire list, how wide the list should be (eg, up to 700px, more than 400px, etc) plus control spacing between items, headers, and footers.

+
public struct TableAppearance.Layout : Equatable
 {
     public var padding : UIEdgeInsets
     public var width : WidthConstraint
@@ -768,7 +768,7 @@ 
       
     
     
   
diff --git a/docs/BlueprintLists/undocumented.json b/docs/BlueprintLists/undocumented.json
index 5fbd43820..bbf60054d 100644
--- a/docs/BlueprintLists/undocumented.json
+++ b/docs/BlueprintLists/undocumented.json
@@ -1,33 +1,33 @@
 {
   "warnings": [
     {
-      "file": "/Users/k/Desktop/Development/Listable3/BlueprintUILists/Sources/BlueprintHeaderFooterContent.swift",
+      "file": "/Users/k/Desktop/Development/Listable2/BlueprintUILists/Sources/BlueprintHeaderFooterContent.swift",
       "line": 112,
       "symbol": "BlueprintHeaderFooterContent.apply(to:for:with:)",
       "symbol_kind": "source.lang.swift.decl.function.method.instance",
       "warning": "undocumented"
     },
     {
-      "file": "/Users/k/Desktop/Development/Listable3/BlueprintUILists/Sources/HeaderFooter.swift",
+      "file": "/Users/k/Desktop/Development/Listable2/BlueprintUILists/Sources/HeaderFooter.swift",
       "line": 127,
       "symbol": "BlueprintHeaderFooterContentWrapper.representing",
       "symbol_kind": "source.lang.swift.decl.var.instance",
       "warning": "undocumented"
     },
     {
-      "file": "/Users/k/Desktop/Development/Listable3/BlueprintUILists/Sources/HeaderFooter.swift",
+      "file": "/Users/k/Desktop/Development/Listable2/BlueprintUILists/Sources/HeaderFooter.swift",
       "line": 134,
       "symbol": "BlueprintHeaderFooterContentWrapper.isEquivalent(to:)",
       "symbol_kind": "source.lang.swift.decl.function.method.instance",
       "warning": "undocumented"
     },
     {
-      "file": "/Users/k/Desktop/Development/Listable3/BlueprintUILists/Sources/Item.swift",
+      "file": "/Users/k/Desktop/Development/Listable2/BlueprintUILists/Sources/Item.swift",
       "line": 137,
       "symbol": "BlueprintItemContentWrapper.representing",
       "symbol_kind": "source.lang.swift.decl.var.instance",
       "warning": "undocumented"
     }
   ],
-  "source_directory": "/Users/k/Desktop/Development/Listable3"
+  "source_directory": "/Users/k/Desktop/Development/Listable2"
 }
\ No newline at end of file
diff --git a/docs/JSON/BlueprintUILists.json b/docs/JSON/BlueprintUILists.json
index f9c5fd70a..03e45e703 100644
--- a/docs/JSON/BlueprintUILists.json
+++ b/docs/JSON/BlueprintUILists.json
@@ -1,15 +1,15 @@
 [{
-  "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 654,
     "key.offset" : 0,
     "key.substructure" : [
       {
-        "key.annotated_decl" : "protocol Element : _Blueprint_Elements_Should_Be_Value_Types<\/Type><\/Declaration>",
+        "key.annotated_decl" : "protocol Element<\/Declaration>",
         "key.bodylength" : 198,
         "key.bodyoffset" : 125,
         "key.doc.column" : 17,
-        "key.doc.declaration" : "protocol Element : BlueprintUI._Blueprint_Elements_Should_Be_Value_Types",
+        "key.doc.declaration" : "protocol Element",
         "key.doc.discussion" : [
           {
             "Para" : "The ultimate purpose of an element is to provide visual content. This can be done in two ways:"
@@ -24,13 +24,13 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-        "key.doc.full_as_xml" : "Element<\/Name>s:11BlueprintUI7ElementP<\/USR>protocol Element : BlueprintUI._Blueprint_Elements_Should_Be_Value_Types<\/Declaration>Conforming types represent a rectangular content area in a two-dimensional layout space.<\/Para><\/Abstract>]]><\/rawHTML>The ultimate purpose of an element is to provide visual content. This can be done in two ways:<\/Para>By providing a view description (ViewDescription<\/codeVoice>).<\/Para><\/Item>By providing child elements that will be displayed recursively within the local coordinate space.<\/Para><\/Item><\/List-Bullet>]]><\/rawHTML>A custom element might look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ViewDescription? {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+        "key.doc.full_as_xml" : "Element<\/Name>s:11BlueprintUI7ElementP<\/USR>protocol Element<\/Declaration>Conforming types represent a rectangular content area in a two-dimensional layout space.<\/Para><\/Abstract>]]><\/rawHTML>The ultimate purpose of an element is to provide visual content. This can be done in two ways:<\/Para>By providing a view description (ViewDescription<\/codeVoice>).<\/Para><\/Item>By providing child elements that will be displayed recursively within the local coordinate space.<\/Para><\/Item><\/List-Bullet>]]><\/rawHTML>A custom element might look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ViewDescription? {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 41,
         "key.doc.name" : "Element",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-        "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> Element<\/decl.name> : _Blueprint_Elements_Should_Be_Value_Types<\/ref.protocol><\/decl.protocol>",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+        "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> Element<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 218,
         "key.modulename" : "BlueprintUI",
@@ -46,7 +46,7 @@
             "key.annotated_decl" : "func wrapInBlueprintEnvironmentFrom(environment: ListEnvironment<\/Type>) -> Element<\/Type><\/Declaration>",
             "key.bodylength" : 107,
             "key.bodyoffset" : 214,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wrapInBlueprintEnvironmentFrom<\/decl.name>(environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 187,
@@ -89,12 +89,12 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
-        "key.doc.full_as_xml" : "ListEnvironment<\/Name>s:10ListableUI15ListEnvironmentV<\/USR>struct ListEnvironment<\/Declaration>An environment of keys and values that are passed to every ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice> during layout and measurement, to allow passing down data.<\/Para><\/Abstract>This type is similar to the SwiftUI or Blueprint Environment<\/codeVoice>, where you define a ListEnvironmentKey<\/codeVoice>, and then provide a custom getter and setter to read and write the content:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can retrieve the ListEnvironment<\/codeVoice> through the info<\/codeVoice> object passed in ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice>’s apply(to:for:with:)<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered>,]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
+        "key.doc.full_as_xml" : "ListEnvironment<\/Name>s:10ListableUI15ListEnvironmentV<\/USR>struct ListEnvironment<\/Declaration>An environment of keys and values that are passed to every ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice> during layout and measurement, to allow passing down data.<\/Para><\/Abstract>This type is similar to the SwiftUI or Blueprint Environment<\/codeVoice>, where you define a ListEnvironmentKey<\/codeVoice>, and then provide a custom getter and setter to read and write the content:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can retrieve the ListEnvironment<\/codeVoice> through the info<\/codeVoice> object passed in ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice>’s apply(to:for:with:)<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered>,]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 44,
         "key.doc.name" : "ListEnvironment",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListEnvironment<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 326,
@@ -111,7 +111,7 @@
             "key.annotated_decl" : "var blueprintEnvironment: Environment<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 96,
             "key.bodyoffset" : 404,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> blueprintEnvironment<\/decl.name>: Environment<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 137,
@@ -145,7 +145,7 @@
                 "key.offset" : 539
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> BlueprintKey<\/decl.name> : ListEnvironmentKey<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -174,12 +174,12 @@
                     "Note" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
-                "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract>This documentation comment was inherited from ListEnvironmentKey<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
+                "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract>This documentation comment was inherited from ListEnvironmentKey<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 79,
                 "key.doc.name" : "defaultValue",
                 "key.doc.type" : "Other",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintEnvironment.swift",
                 "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Environment<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
                 "key.kind" : "source.lang.swift.decl.var.static",
                 "key.length" : 68,
@@ -212,9 +212,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 4655,
+    "key.length" : 4636,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -230,14 +230,14 @@
         "key.doc.column" : 18,
         "key.doc.comment" : "Alias to allow less verbose creation of headers.",
         "key.doc.declaration" : "public typealias BlueprintHeaderContent = BlueprintHeaderFooterContent",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "BlueprintHeaderContent<\/Name>s:16BlueprintUILists0A13HeaderContenta<\/USR>public typealias BlueprintHeaderContent = BlueprintHeaderFooterContent<\/Declaration>Alias to allow less verbose creation of headers.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "BlueprintHeaderContent<\/Name>s:16BlueprintUILists0A13HeaderContenta<\/USR>public typealias BlueprintHeaderContent = BlueprintHeaderFooterContent<\/Declaration>Alias to allow less verbose creation of headers.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 13,
         "key.doc.name" : "BlueprintHeaderContent",
         "key.doc.type" : "Other",
         "key.doclength" : 53,
         "key.docoffset" : 152,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> BlueprintHeaderContent<\/decl.name> = BlueprintHeaderFooterContent<\/ref.protocol><\/decl.typealias>",
         "key.kind" : "source.lang.swift.decl.typealias",
         "key.length" : 63,
@@ -265,14 +265,14 @@
         "key.doc.column" : 18,
         "key.doc.comment" : "Alias to allow less verbose creation of footers.",
         "key.doc.declaration" : "public typealias BlueprintFooterContent = BlueprintHeaderFooterContent",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "BlueprintFooterContent<\/Name>s:16BlueprintUILists0A13FooterContenta<\/USR>public typealias BlueprintFooterContent = BlueprintHeaderFooterContent<\/Declaration>Alias to allow less verbose creation of footers.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "BlueprintFooterContent<\/Name>s:16BlueprintUILists0A13FooterContenta<\/USR>public typealias BlueprintFooterContent = BlueprintHeaderFooterContent<\/Declaration>Alias to allow less verbose creation of footers.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 16,
         "key.doc.name" : "BlueprintFooterContent",
         "key.doc.type" : "Other",
         "key.doclength" : 53,
         "key.docoffset" : 277,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> BlueprintFooterContent<\/decl.name> = BlueprintHeaderFooterContent<\/ref.protocol><\/decl.typealias>",
         "key.kind" : "source.lang.swift.decl.typealias",
         "key.length" : 63,
@@ -325,8 +325,8 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `elementRepresentation` z-Index 2) `pressedBackground` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `background`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "BlueprintHeaderFooterContent<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP<\/USR>public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>A HeaderFooterContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>You do not need to provide any views; just Blueprint Elements<\/codeVoice>. Do not override the createReusable{...}View<\/codeVoice> methods.<\/Para>A non-tappable header that shows a label might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both background<\/codeVoice> and pressedBackground<\/codeVoice> properties:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The ordering of the elements by z-index is as follows: z-Index 3) elementRepresentation<\/codeVoice> z-Index 2) pressedBackground<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) background<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "BlueprintHeaderFooterContent<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP<\/USR>public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>A HeaderFooterContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>You do not need to provide any views; just Blueprint Elements<\/codeVoice>. Do not override the createReusable{...}View<\/codeVoice> methods.<\/Para>A non-tappable header that shows a label might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both background<\/codeVoice> and pressedBackground<\/codeVoice> properties:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The ordering of the elements by z-index is as follows: z-Index 3) elementRepresentation<\/codeVoice> z-Index 2) pressedBackground<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) background<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 60,
         "key.doc.name" : "BlueprintHeaderFooterContent",
         "key.doc.type" : "Class",
@@ -339,7 +339,7 @@
             "key.offset" : 2046
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintHeaderFooterContent<\/decl.name> : HeaderFooterContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.PressedBackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -372,14 +372,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "Required. Create and return the Blueprint element used to represent the content.",
             "key.doc.declaration" : "var elementRepresentation: Element { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "elementRepresentation<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp<\/USR>var elementRepresentation: Element { get }<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "elementRepresentation<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp<\/USR>var elementRepresentation: Element { get }<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 71,
             "key.doc.name" : "elementRepresentation",
             "key.doc.type" : "Other",
             "key.doclength" : 85,
             "key.docoffset" : 2267,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> elementRepresentation<\/decl.name>: Element<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 43,
@@ -407,14 +407,14 @@
                 "Para" : "The default implementation of this method returns nil, and provides no background."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "background<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp<\/USR>var background: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside pressedBackground<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "background<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp<\/USR>var background: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside pressedBackground<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 81,
             "key.doc.name" : "background",
             "key.doc.type" : "Other",
             "key.doclength" : 354,
             "key.docoffset" : 2409,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> background<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -447,14 +447,14 @@
                 "Para" : "The default implementation of this method returns nil, and provides no selected background."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "pressedBackground<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp<\/USR>var pressedBackground: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed. You usually provide this method alongside background<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "pressedBackground<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp<\/USR>var pressedBackground: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed. You usually provide this method alongside background<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 90,
             "key.doc.name" : "pressedBackground",
             "key.doc.type" : "Other",
             "key.doclength" : 367,
             "key.docoffset" : 2810,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pressedBackground<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 40,
@@ -489,7 +489,7 @@
             "key.offset" : 3226
           }
         ],
-        "key.bodylength" : 1380,
+        "key.bodylength" : 1361,
         "key.bodyoffset" : 3273,
         "key.doc.column" : 17,
         "key.doc.declaration" : "public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView",
@@ -516,21 +516,21 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `elementRepresentation` z-Index 2) `pressedBackground` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `background`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "BlueprintHeaderFooterContent<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP<\/USR>public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>A HeaderFooterContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>You do not need to provide any views; just Blueprint Elements<\/codeVoice>. Do not override the createReusable{...}View<\/codeVoice> methods.<\/Para>A non-tappable header that shows a label might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both background<\/codeVoice> and pressedBackground<\/codeVoice> properties:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The ordering of the elements by z-index is as follows: z-Index 3) elementRepresentation<\/codeVoice> z-Index 2) pressedBackground<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) background<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "BlueprintHeaderFooterContent<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP<\/USR>public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>A HeaderFooterContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>You do not need to provide any views; just Blueprint Elements<\/codeVoice>. Do not override the createReusable{...}View<\/codeVoice> methods.<\/Para>A non-tappable header that shows a label might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both background<\/codeVoice> and pressedBackground<\/codeVoice> properties:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The ordering of the elements by z-index is as follows: z-Index 3) elementRepresentation<\/codeVoice> z-Index 2) pressedBackground<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) background<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 60,
         "key.doc.name" : "BlueprintHeaderFooterContent",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintHeaderFooterContent<\/decl.name> : HeaderFooterContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.PressedBackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 1421,
+        "key.length" : 1402,
         "key.name" : "BlueprintHeaderFooterContent",
         "key.namelength" : 28,
         "key.nameoffset" : 3243,
         "key.offset" : 3233,
         "key.parsed_declaration" : "public extension BlueprintHeaderFooterContent",
-        "key.parsed_scope.end" : 145,
+        "key.parsed_scope.end" : 140,
         "key.parsed_scope.start" : 94,
         "key.substructure" : [
           {
@@ -556,12 +556,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "background<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp<\/USR>var background: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside pressedBackground<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "background<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp<\/USR>var background: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside pressedBackground<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 81,
             "key.doc.name" : "background",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> background<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 45,
@@ -596,12 +596,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "pressedBackground<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp<\/USR>var pressedBackground: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed. You usually provide this method alongside background<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "pressedBackground<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp<\/USR>var pressedBackground: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed. You usually provide this method alongside background<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 90,
             "key.doc.name" : "pressedBackground",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pressedBackground<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 52,
@@ -634,7 +634,7 @@
             "key.annotated_decl" : "func apply(to views: HeaderFooterContentViews<\/Type><Self<\/Type>>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>",
             "key.bodylength" : 358,
             "key.bodyoffset" : 3658,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: HeaderFooterContentViews<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 509,
@@ -660,8 +660,8 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "static func createReusableContentView(frame: CGRect<\/Type>) -> ContentView<\/Type><\/Declaration>",
-            "key.bodylength" : 119,
-            "key.bodyoffset" : 4100,
+            "key.bodylength" : 48,
+            "key.bodyoffset" : 4096,
             "key.doc.column" : 17,
             "key.doc.declaration" : "static func createReusableContentView(frame: CGRect) -> Self.ContentView",
             "key.doc.discussion" : [
@@ -672,21 +672,21 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> Self.ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> Self.ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 78,
             "key.doc.name" : "createReusableContentView(frame:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ContentView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 193,
+            "key.length" : 118,
             "key.name" : "createReusableContentView(frame:)",
             "key.namelength" : 40,
             "key.nameoffset" : 4039,
             "key.offset" : 4027,
             "key.parsed_declaration" : "static func createReusableContentView(frame: CGRect) -> ContentView",
-            "key.parsed_scope.end" : 128,
+            "key.parsed_scope.end" : 124,
             "key.parsed_scope.start" : 122,
             "key.related_decls" : [
               {
@@ -694,23 +694,7 @@
               }
             ],
             "key.substructure" : [
-              {
-                "key.annotated_decl" : "let view: BlueprintView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: BlueprintView<\/ref.class><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 38,
-                "key.name" : "view",
-                "key.namelength" : 4,
-                "key.nameoffset" : 4113,
-                "key.offset" : 4109,
-                "key.parsed_declaration" : "let view = BlueprintView(frame: frame)",
-                "key.parsed_scope.end" : 124,
-                "key.parsed_scope.start" : 124,
-                "key.typename" : "BlueprintView",
-                "key.typeusr" : "$s11BlueprintUI0A4ViewCD",
-                "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentPAAE014createReusableE4View5frame0A2UI0aH0CSo6CGRectV_tFZ4viewL_AHvp"
-              }
+
             ],
             "key.typename" : " (Self.Type) -> (CGRect) -> Self.ContentView",
             "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD",
@@ -719,8 +703,8 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "static func createReusableBackgroundView(frame: CGRect<\/Type>) -> BackgroundView<\/Type><\/Declaration>",
-            "key.bodylength" : 119,
-            "key.bodyoffset" : 4309,
+            "key.bodylength" : 48,
+            "key.bodyoffset" : 4230,
             "key.doc.column" : 17,
             "key.doc.declaration" : "static func createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView",
             "key.doc.discussion" : [
@@ -731,22 +715,22 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 101,
             "key.doc.name" : "createReusableBackgroundView(frame:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 199,
+            "key.length" : 124,
             "key.name" : "createReusableBackgroundView(frame:)",
             "key.namelength" : 43,
-            "key.nameoffset" : 4242,
-            "key.offset" : 4230,
+            "key.nameoffset" : 4167,
+            "key.offset" : 4155,
             "key.parsed_declaration" : "static func createReusableBackgroundView(frame: CGRect) -> BackgroundView",
-            "key.parsed_scope.end" : 136,
-            "key.parsed_scope.start" : 130,
+            "key.parsed_scope.end" : 128,
+            "key.parsed_scope.start" : 126,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/RelatedName>"
@@ -756,23 +740,7 @@
               }
             ],
             "key.substructure" : [
-              {
-                "key.annotated_decl" : "let view: BlueprintView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: BlueprintView<\/ref.class><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 38,
-                "key.name" : "view",
-                "key.namelength" : 4,
-                "key.nameoffset" : 4322,
-                "key.offset" : 4318,
-                "key.parsed_declaration" : "let view = BlueprintView(frame: frame)",
-                "key.parsed_scope.end" : 132,
-                "key.parsed_scope.start" : 132,
-                "key.typename" : "BlueprintView",
-                "key.typeusr" : "$s11BlueprintUI0A4ViewCD",
-                "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentPAAE28createReusableBackgroundView5frame0A2UI0aI0CSo6CGRectV_tFZ4viewL_AHvp"
-              }
+
             ],
             "key.typename" : " (Self.Type) -> (CGRect) -> Self.BackgroundView",
             "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD",
@@ -781,8 +749,8 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "static func createReusablePressedBackgroundView(frame: CGRect<\/Type>) -> PressedBackgroundView<\/Type><\/Declaration>",
-            "key.bodylength" : 119,
-            "key.bodyoffset" : 4532,
+            "key.bodylength" : 48,
+            "key.bodyoffset" : 4378,
             "key.doc.column" : 17,
             "key.doc.declaration" : "static func createReusablePressedBackgroundView(frame: CGRect) -> Self.PressedBackgroundView",
             "key.doc.discussion" : [
@@ -799,22 +767,22 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "createReusablePressedBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ<\/USR>static func createReusablePressedBackgroundView(frame: CGRect) -> Self.PressedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s pressed background.<\/Para><\/Abstract>This view is displayed when the user taps\/presses the header \/ footer.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "createReusablePressedBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ<\/USR>static func createReusablePressedBackgroundView(frame: CGRect) -> Self.PressedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s pressed background.<\/Para><\/Abstract>This view is displayed when the user taps\/presses the header \/ footer.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 125,
             "key.doc.name" : "createReusablePressedBackgroundView(frame:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusablePressedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> PressedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 213,
+            "key.length" : 138,
             "key.name" : "createReusablePressedBackgroundView(frame:)",
             "key.namelength" : 50,
-            "key.nameoffset" : 4451,
-            "key.offset" : 4439,
+            "key.nameoffset" : 4301,
+            "key.offset" : 4289,
             "key.parsed_declaration" : "static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView",
-            "key.parsed_scope.end" : 144,
-            "key.parsed_scope.start" : 138,
+            "key.parsed_scope.end" : 132,
+            "key.parsed_scope.start" : 130,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "createReusablePressedBackgroundView(frame: CGRect) -> Self.PressedBackgroundView<\/RelatedName>"
@@ -823,28 +791,58 @@
                 "key.annotated_decl" : "createReusablePressedBackgroundView(frame: CGRect) -> Self.PressedBackgroundView<\/RelatedName>"
               }
             ],
+            "key.substructure" : [
+
+            ],
+            "key.typename" : " (Self.Type) -> (CGRect) -> Self.PressedBackgroundView",
+            "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD",
+            "key.usr" : "s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.private",
+            "key.annotated_decl" : "private static func newBlueprintView(with frame: CGRect<\/Type>) -> BlueprintView<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.private",
+                "key.length" : 7,
+                "key.offset" : 4437
+              }
+            ],
+            "key.bodylength" : 119,
+            "key.bodyoffset" : 4513,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newBlueprintView<\/decl.name>(with<\/decl.var.parameter.argument_label> frame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BlueprintView<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>",
+            "key.kind" : "source.lang.swift.decl.function.method.static",
+            "key.length" : 188,
+            "key.name" : "newBlueprintView(with:)",
+            "key.namelength" : 37,
+            "key.nameoffset" : 4457,
+            "key.offset" : 4445,
+            "key.parsed_declaration" : "private static func newBlueprintView(with frame : CGRect) -> BlueprintView",
+            "key.parsed_scope.end" : 139,
+            "key.parsed_scope.start" : 134,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let view: BlueprintView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: BlueprintView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 38,
                 "key.name" : "view",
                 "key.namelength" : 4,
-                "key.nameoffset" : 4545,
-                "key.offset" : 4541,
+                "key.nameoffset" : 4526,
+                "key.offset" : 4522,
                 "key.parsed_declaration" : "let view = BlueprintView(frame: frame)",
-                "key.parsed_scope.end" : 140,
-                "key.parsed_scope.start" : 140,
+                "key.parsed_scope.end" : 135,
+                "key.parsed_scope.start" : 135,
                 "key.typename" : "BlueprintView",
                 "key.typeusr" : "$s11BlueprintUI0A4ViewCD",
-                "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentPAAE35createReusablePressedBackgroundView5frame0A2UI0aJ0CSo6CGRectV_tFZ4viewL_AHvp"
+                "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentPAAE03newA4View33_02A79BC97C366F3BDEC29D56D447731DLL4with0A2UI0aG0CSo6CGRectV_tFZ4viewL_AIvp"
               }
             ],
-            "key.typename" : " (Self.Type) -> (CGRect) -> Self.PressedBackgroundView",
-            "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD",
-            "key.usr" : "s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ"
+            "key.typename" : " (Self.Type) -> (CGRect) -> BlueprintView",
+            "key.typeusr" : "$s4with11BlueprintUI0B4ViewCSo6CGRectV_tcD",
+            "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentPAAE03newA4View33_02A79BC97C366F3BDEC29D56D447731DLL4with0A2UI0aG0CSo6CGRectV_tFZ"
           }
         ],
         "key.typename" : "BlueprintHeaderFooterContent.Protocol",
@@ -854,9 +852,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 5443,
+    "key.length" : 5486,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -888,8 +886,8 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `element` z-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `backgroundElement`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-        "key.doc.full_as_xml" : "BlueprintItemContent<\/Name>s:16BlueprintUILists0A11ItemContentP<\/USR>public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>An ItemContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>A BlueprintItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which uses the backgroundElement<\/codeVoice> and selectedBackgroundElement<\/codeVoice> methods to provide rendering of a background for the item, which will respond to its selection state.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) element<\/codeVoice> z-index 2) selectedBackgroundElement<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) backgroundElement<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+        "key.doc.full_as_xml" : "BlueprintItemContent<\/Name>s:16BlueprintUILists0A11ItemContentP<\/USR>public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>An ItemContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>A BlueprintItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which uses the backgroundElement<\/codeVoice> and selectedBackgroundElement<\/codeVoice> methods to provide rendering of a background for the item, which will respond to its selection state.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) element<\/codeVoice> z-index 2) selectedBackgroundElement<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) backgroundElement<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 55,
         "key.doc.name" : "BlueprintItemContent",
         "key.doc.type" : "Class",
@@ -902,7 +900,7 @@
             "key.offset" : 1809
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintItemContent<\/decl.name> : ItemContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.SelectedBackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -938,14 +936,14 @@
                 "Para" : "You can use the provided `ApplyItemContentInfo` to vary the appearance of the element based on the current state of the item."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "element(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF<\/USR>func element(with info: ApplyItemContentInfo) -> Element<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "element(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF<\/USR>func element(with info: ApplyItemContentInfo) -> Element<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 70,
             "key.doc.name" : "element(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 243,
             "key.docoffset" : 2027,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> element<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 57,
@@ -977,14 +975,14 @@
                 "Para" : "The default implementation of this method returns nil, and provides no background."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "backgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF<\/USR>func backgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside selectedBackgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "backgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF<\/USR>func backgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside selectedBackgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 83,
             "key.doc.name" : "backgroundElement(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 525,
             "key.docoffset" : 2341,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> backgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 68,
@@ -1021,14 +1019,14 @@
                 "Para" : "The default implementation of this method returns nil, and provides no selected background."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "selectedBackgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is selected or highlighted. You usually provide this method alongside backgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "selectedBackgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is selected or highlighted. You usually provide this method alongside backgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 95,
             "key.doc.name" : "selectedBackgroundElement(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 553,
             "key.docoffset" : 2948,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> selectedBackgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 76,
@@ -1084,12 +1082,12 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `element` z-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `backgroundElement`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-        "key.doc.full_as_xml" : "BlueprintItemContent<\/Name>s:16BlueprintUILists0A11ItemContentP<\/USR>public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>An ItemContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>A BlueprintItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which uses the backgroundElement<\/codeVoice> and selectedBackgroundElement<\/codeVoice> methods to provide rendering of a background for the item, which will respond to its selection state.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) element<\/codeVoice> z-index 2) selectedBackgroundElement<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) backgroundElement<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+        "key.doc.full_as_xml" : "BlueprintItemContent<\/Name>s:16BlueprintUILists0A11ItemContentP<\/USR>public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>An ItemContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>A BlueprintItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which uses the backgroundElement<\/codeVoice> and selectedBackgroundElement<\/codeVoice> methods to provide rendering of a background for the item, which will respond to its selection state.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) element<\/codeVoice> z-index 2) selectedBackgroundElement<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) backgroundElement<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 55,
         "key.doc.name" : "BlueprintItemContent",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintItemContent<\/decl.name> : ItemContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.SelectedBackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 396,
@@ -1117,14 +1115,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "By default, content has no background.",
             "key.doc.declaration" : "func backgroundElement(with info: ApplyItemContentInfo) -> Element?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "backgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF<\/USR>func backgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>By default, content has no background.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "backgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF<\/USR>func backgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>By default, content has no background.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 106,
             "key.doc.name" : "backgroundElement(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 43,
             "key.docoffset" : 3686,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> backgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 92,
@@ -1155,14 +1153,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "By default, content has no selected background.",
             "key.doc.declaration" : "func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "selectedBackgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>By default, content has no selected background.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "selectedBackgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>By default, content has no selected background.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 112,
             "key.doc.name" : "selectedBackgroundElement(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 52,
             "key.docoffset" : 3831,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> selectedBackgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 100,
@@ -1200,7 +1198,7 @@
             "key.offset" : 3992
           }
         ],
-        "key.bodylength" : 1410,
+        "key.bodylength" : 1453,
         "key.bodyoffset" : 4031,
         "key.doc.column" : 17,
         "key.doc.declaration" : "public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView",
@@ -1218,21 +1216,21 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `element` z-index 2) `selectedBackgroundElement` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `backgroundElement`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-        "key.doc.full_as_xml" : "BlueprintItemContent<\/Name>s:16BlueprintUILists0A11ItemContentP<\/USR>public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>An ItemContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>A BlueprintItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which uses the backgroundElement<\/codeVoice> and selectedBackgroundElement<\/codeVoice> methods to provide rendering of a background for the item, which will respond to its selection state.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) element<\/codeVoice> z-index 2) selectedBackgroundElement<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) backgroundElement<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+        "key.doc.full_as_xml" : "BlueprintItemContent<\/Name>s:16BlueprintUILists0A11ItemContentP<\/USR>public protocol BlueprintItemContent : ListableUI.ItemContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.SelectedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>An ItemContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>A BlueprintItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> Element?]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which uses the backgroundElement<\/codeVoice> and selectedBackgroundElement<\/codeVoice> methods to provide rendering of a background for the item, which will respond to its selection state.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) element<\/codeVoice> z-index 2) selectedBackgroundElement<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) backgroundElement<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 55,
         "key.doc.name" : "BlueprintItemContent",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintItemContent<\/decl.name> : ItemContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.SelectedBackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 1443,
+        "key.length" : 1486,
         "key.name" : "BlueprintItemContent",
         "key.namelength" : 20,
         "key.nameoffset" : 4009,
         "key.offset" : 3999,
         "key.parsed_declaration" : "public extension BlueprintItemContent",
-        "key.parsed_scope.end" : 154,
+        "key.parsed_scope.end" : 153,
         "key.parsed_scope.start" : 119,
         "key.substructure" : [
           {
@@ -1251,14 +1249,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Maps the `BlueprintItemContent` methods into the underlying `BlueprintView`s used to render the element.",
             "key.doc.declaration" : "func apply(to views: ItemContentViews, for reason: ApplyReason, with info: ApplyItemContentInfo)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "apply(to:for:with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE5apply2to3for4withy10ListableUI0cD5ViewsVyxG_AH11ApplyReasonOAH0lcD4InfoVtF<\/USR>func apply(to views: ItemContentViews<Self>, for reason: ApplyReason, with info: ApplyItemContentInfo)<\/Declaration>Maps the BlueprintItemContent<\/codeVoice> methods into the underlying BlueprintView<\/codeVoice>s used to render the element.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "apply(to:for:with:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE5apply2to3for4withy10ListableUI0cD5ViewsVyxG_AH11ApplyReasonOAH0lcD4InfoVtF<\/USR>func apply(to views: ItemContentViews<Self>, for reason: ApplyReason, with info: ApplyItemContentInfo)<\/Declaration>Maps the BlueprintItemContent<\/codeVoice> methods into the underlying BlueprintView<\/codeVoice>s used to render the element.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 126,
             "key.doc.name" : "apply(to:for:with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 109,
             "key.docoffset" : 4080,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: ItemContentViews<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 517,
@@ -1284,28 +1282,28 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "static func createReusableContentView(frame: CGRect<\/Type>) -> ContentView<\/Type><\/Declaration>",
-            "key.bodylength" : 119,
-            "key.bodyoffset" : 4869,
+            "key.bodylength" : 48,
+            "key.bodyoffset" : 4865,
             "key.doc.column" : 17,
             "key.doc.comment" : "Creates the `BlueprintView` used to render the content of the item.",
             "key.doc.declaration" : "static func createReusableContentView(frame: CGRect) -> ContentView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE014createReusableD4View5frame0A2UI0aG0CSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Creates the BlueprintView<\/codeVoice> used to render the content of the item.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE014createReusableD4View5frame0A2UI0aG0CSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Creates the BlueprintView<\/codeVoice> used to render the content of the item.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 134,
             "key.doc.name" : "createReusableContentView(frame:)",
             "key.doc.type" : "Function",
             "key.doclength" : 72,
             "key.docoffset" : 4720,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ContentView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 193,
+            "key.length" : 118,
             "key.name" : "createReusableContentView(frame:)",
             "key.namelength" : 40,
             "key.nameoffset" : 4808,
             "key.offset" : 4796,
             "key.parsed_declaration" : "static func createReusableContentView(frame: CGRect) -> ContentView",
-            "key.parsed_scope.end" : 140,
+            "key.parsed_scope.end" : 136,
             "key.parsed_scope.start" : 134,
             "key.related_decls" : [
               {
@@ -1313,23 +1311,7 @@
               }
             ],
             "key.substructure" : [
-              {
-                "key.annotated_decl" : "let view: BlueprintView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: BlueprintView<\/ref.class><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 38,
-                "key.name" : "view",
-                "key.namelength" : 4,
-                "key.nameoffset" : 4882,
-                "key.offset" : 4878,
-                "key.parsed_declaration" : "let view = BlueprintView(frame: frame)",
-                "key.parsed_scope.end" : 136,
-                "key.parsed_scope.start" : 136,
-                "key.typename" : "BlueprintView",
-                "key.typeusr" : "$s11BlueprintUI0A4ViewCD",
-                "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE014createReusableD4View5frame0A2UI0aG0CSo6CGRectV_tFZ4viewL_AHvp"
-              }
+
             ],
             "key.typename" : " (Self.Type) -> (CGRect) -> Self.ContentView",
             "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD",
@@ -1338,29 +1320,29 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "static func createReusableBackgroundView(frame: CGRect<\/Type>) -> BackgroundView<\/Type><\/Declaration>",
-            "key.bodylength" : 119,
-            "key.bodyoffset" : 5157,
+            "key.bodylength" : 48,
+            "key.bodyoffset" : 5078,
             "key.doc.column" : 17,
             "key.doc.comment" : "Creates the `BlueprintView` used to render the background of the item.",
             "key.doc.declaration" : "static func createReusableBackgroundView(frame: CGRect) -> BackgroundView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE28createReusableBackgroundView5frame0A2UI0aH0CSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Creates the BlueprintView<\/codeVoice> used to render the background of the item.<\/Para><\/Abstract><\/CommentParts><\/Function>",
-            "key.doc.line" : 143,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:16BlueprintUILists0A11ItemContentPAAE28createReusableBackgroundView5frame0A2UI0aH0CSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Creates the BlueprintView<\/codeVoice> used to render the background of the item.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.line" : 139,
             "key.doc.name" : "createReusableBackgroundView(frame:)",
             "key.doc.type" : "Function",
             "key.doclength" : 75,
-            "key.docoffset" : 4999,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.docoffset" : 4924,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 199,
+            "key.length" : 124,
             "key.name" : "createReusableBackgroundView(frame:)",
             "key.namelength" : 43,
-            "key.nameoffset" : 5090,
-            "key.offset" : 5078,
+            "key.nameoffset" : 5015,
+            "key.offset" : 5003,
             "key.parsed_declaration" : "static func createReusableBackgroundView(frame: CGRect) -> BackgroundView",
-            "key.parsed_scope.end" : 149,
-            "key.parsed_scope.start" : 143,
+            "key.parsed_scope.end" : 141,
+            "key.parsed_scope.start" : 139,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "createReusableBackgroundView(frame: CGRect) -> Self.BackgroundView<\/RelatedName>"
@@ -1370,23 +1352,7 @@
               }
             ],
             "key.substructure" : [
-              {
-                "key.annotated_decl" : "let view: BlueprintView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: BlueprintView<\/ref.class><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 38,
-                "key.name" : "view",
-                "key.namelength" : 4,
-                "key.nameoffset" : 5170,
-                "key.offset" : 5166,
-                "key.parsed_declaration" : "let view = BlueprintView(frame: frame)",
-                "key.parsed_scope.end" : 145,
-                "key.parsed_scope.start" : 145,
-                "key.typename" : "BlueprintView",
-                "key.typeusr" : "$s11BlueprintUI0A4ViewCD",
-                "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE28createReusableBackgroundView5frame0A2UI0aH0CSo6CGRectV_tFZ4viewL_AHvp"
-              }
+
             ],
             "key.typename" : " (Self.Type) -> (CGRect) -> Self.BackgroundView",
             "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD",
@@ -1395,8 +1361,8 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "static func createReusableSelectedBackgroundView(frame: CGRect<\/Type>) -> SelectedBackgroundView<\/Type><\/Declaration>",
-            "key.bodylength" : 61,
-            "key.bodyoffset" : 5378,
+            "key.bodylength" : 48,
+            "key.bodyoffset" : 5228,
             "key.doc.column" : 17,
             "key.doc.declaration" : "static func createReusableSelectedBackgroundView(frame: CGRect) -> Self.SelectedBackgroundView",
             "key.doc.discussion" : [
@@ -1413,22 +1379,22 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "createReusableSelectedBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableSelectedBackgroundView(frame: CGRect) -> Self.SelectedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s selected background.<\/Para><\/Abstract>This view is displayed when the content is highlighted or selected.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "createReusableSelectedBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableSelectedBackgroundView(frame: CGRect) -> Self.SelectedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s selected background.<\/Para><\/Abstract>This view is displayed when the content is highlighted or selected.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 195,
             "key.doc.name" : "createReusableSelectedBackgroundView(frame:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableSelectedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> SelectedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 153,
+            "key.length" : 140,
             "key.name" : "createReusableSelectedBackgroundView(frame:)",
             "key.namelength" : 51,
-            "key.nameoffset" : 5299,
-            "key.offset" : 5287,
+            "key.nameoffset" : 5149,
+            "key.offset" : 5137,
             "key.parsed_declaration" : "static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView",
-            "key.parsed_scope.end" : 153,
-            "key.parsed_scope.start" : 151,
+            "key.parsed_scope.end" : 145,
+            "key.parsed_scope.start" : 143,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "createReusableSelectedBackgroundView(frame: CGRect) -> Self.SelectedBackgroundView<\/RelatedName>"
@@ -1443,6 +1409,52 @@
             "key.typename" : " (Self.Type) -> (CGRect) -> Self.SelectedBackgroundView",
             "key.typeusr" : "$s5frame11BlueprintUI0B4ViewCSo6CGRectV_tcD",
             "key.usr" : "s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.private",
+            "key.annotated_decl" : "private static func newBlueprintView(with frame: CGRect<\/Type>) -> BlueprintView<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.private",
+                "key.length" : 7,
+                "key.offset" : 5287
+              }
+            ],
+            "key.bodylength" : 119,
+            "key.bodyoffset" : 5363,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newBlueprintView<\/decl.name>(with<\/decl.var.parameter.argument_label> frame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BlueprintView<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>",
+            "key.kind" : "source.lang.swift.decl.function.method.static",
+            "key.length" : 188,
+            "key.name" : "newBlueprintView(with:)",
+            "key.namelength" : 37,
+            "key.nameoffset" : 5307,
+            "key.offset" : 5295,
+            "key.parsed_declaration" : "private static func newBlueprintView(with frame : CGRect) -> BlueprintView",
+            "key.parsed_scope.end" : 152,
+            "key.parsed_scope.start" : 147,
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "let view: BlueprintView<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: BlueprintView<\/ref.class><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 38,
+                "key.name" : "view",
+                "key.namelength" : 4,
+                "key.nameoffset" : 5376,
+                "key.offset" : 5372,
+                "key.parsed_declaration" : "let view = BlueprintView(frame: frame)",
+                "key.parsed_scope.end" : 148,
+                "key.parsed_scope.start" : 148,
+                "key.typename" : "BlueprintView",
+                "key.typeusr" : "$s11BlueprintUI0A4ViewCD",
+                "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE03newA4View33_00A2BB1FCE0BEE1B772989891DE46E9ALL4with0A2UI0aF0CSo6CGRectV_tFZ4viewL_AIvp"
+              }
+            ],
+            "key.typename" : " (Self.Type) -> (CGRect) -> BlueprintView",
+            "key.typeusr" : "$s4with11BlueprintUI0B4ViewCSo6CGRectV_tcD",
+            "key.usr" : "s:16BlueprintUILists0A11ItemContentPAAE03newA4View33_00A2BB1FCE0BEE1B772989891DE46E9ALL4with0A2UI0aF0CSo6CGRectV_tFZ"
           }
         ],
         "key.typename" : "BlueprintItemContent.Protocol",
@@ -1452,147 +1464,23 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Deprecations.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Deprecations.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 1743,
+    "key.length" : 1292,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-        "key.length" : 29,
-        "key.name" : "MARK: Deprecated May 29, 2019",
+        "key.length" : 31,
+        "key.name" : "MARK: Deprecated Month XX, 20XX",
         "key.namelength" : 0,
         "key.nameoffset" : 0,
         "key.offset" : 1257
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 1351
-          },
-          {
-            "key.attribute" : "source.decl.attribute.available",
-            "key.length" : 59,
-            "key.offset" : 1291
-          }
-        ],
-        "key.doc.comment" : "\nThis file contains deprecations which have occurred in BlueprintUILists, for which there are reasonable\nforward-moving defaults (eg, renames), to ease transitions for consumers when they update their library version.\n\nTo add new deprecations and changes:\n------------------------------------\n1) Add a new `MARK: Deprecated ` section for the deprecations you are adding.\n\n2) Add deprecation annotations like so:\n   ```\n   @available(*, deprecated, renamed: \"ItemContent\")\n   public typealias ItemElement = ItemContent\n   ```\n\n   Or, when deprecating properties, add a passthrough like so:\n   ```\n   public extension Item {\n      @available(*, deprecated, renamed: \"content\")\n      var element : Content {\n         self.content\n      }\n   }\n   ```\n\n3) After 1-2 months has passed, mark the previously `deprecated` items as `unavailable`:\n   ```\n   @available(*, unavailable, renamed: \"ItemContent\")\n   ```\n\n4) After another 1-2 months have passed, feel free to remove the `MARK: Deprecated` section you added.",
-        "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-        "key.kind" : "source.lang.swift.decl.typealias",
-        "key.length" : 53,
-        "key.name" : "BlueprintItemElement",
-        "key.namelength" : 20,
-        "key.nameoffset" : 1368,
-        "key.offset" : 1358
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 1481
-          },
-          {
-            "key.attribute" : "source.decl.attribute.available",
-            "key.length" : 67,
-            "key.offset" : 1413
-          }
-        ],
-        "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-        "key.kind" : "source.lang.swift.decl.typealias",
-        "key.length" : 69,
-        "key.name" : "BlueprintHeaderFooterElement",
-        "key.namelength" : 28,
-        "key.nameoffset" : 1498,
-        "key.offset" : 1488
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol BlueprintHeaderFooterContent : HeaderFooterContent<\/Type> where Self<\/Type>.BackgroundView == BlueprintView<\/Type>, Self<\/Type>.ContentView == BlueprintView<\/Type>, Self<\/Type>.PressedBackgroundView == BlueprintView<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 1559
-          }
-        ],
-        "key.bodylength" : 135,
-        "key.bodyoffset" : 1606,
-        "key.doc.column" : 17,
-        "key.doc.declaration" : "public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView",
-        "key.doc.discussion" : [
-          {
-            "Para" : "You do not need to provide any views; just Blueprint `Elements`. Do not override the `createReusable{...}View` methods."
-          },
-          {
-            "Para" : "A non-tappable header that shows a label might look like this:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "The header is made `Equatable` in order to synthesize automatic conformance to `isEquivalent`, based on the header’s properties."
-          },
-          {
-            "Para" : "If you want to add support for rendering a background view and a pressed state, you should provide both `background` and `pressedBackground` properties:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `elementRepresentation` z-Index 2) `pressedBackground` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `background`"
-          }
-        ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "BlueprintHeaderFooterContent<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP<\/USR>public protocol BlueprintHeaderFooterContent : ListableUI.HeaderFooterContent where Self.BackgroundView == BlueprintUI.BlueprintView, Self.ContentView == BlueprintUI.BlueprintView, Self.PressedBackgroundView == BlueprintUI.BlueprintView<\/Declaration>A HeaderFooterContent<\/codeVoice> specialized for use with Blueprint. Instead of providing custom views from createReusable{...}View<\/codeVoice>, and then updating them in apply(to:)<\/codeVoice>, you instead provide Blueprint elements, and Listable<\/codeVoice> handles mapping this to an underlying BlueprintView<\/codeVoice>.<\/Para><\/Abstract>You do not need to provide any views; just Blueprint Elements<\/codeVoice>. Do not override the createReusable{...}View<\/codeVoice> methods.<\/Para>A non-tappable header that shows a label might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both background<\/codeVoice> and pressedBackground<\/codeVoice> properties:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The ordering of the elements by z-index is as follows: z-Index 3) elementRepresentation<\/codeVoice> z-Index 2) pressedBackground<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) background<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 60,
-        "key.doc.name" : "BlueprintHeaderFooterContent",
-        "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> BlueprintHeaderFooterContent<\/decl.name> : HeaderFooterContent<\/ref.protocol> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.BackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.ContentView == BlueprintView<\/ref.class><\/decl.generic_type_requirement>, Self<\/ref.generic_type_param>.PressedBackgroundView == BlueprintView<\/ref.class><\/decl.generic_type_requirement><\/decl.protocol>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 176,
-        "key.name" : "BlueprintHeaderFooterContent",
-        "key.namelength" : 28,
-        "key.nameoffset" : 1576,
-        "key.offset" : 1566,
-        "key.parsed_declaration" : "public extension BlueprintHeaderFooterContent",
-        "key.parsed_scope.end" : 58,
-        "key.parsed_scope.start" : 53,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.available",
-                "key.length" : 60,
-                "key.offset" : 1611
-              }
-            ],
-            "key.bodylength" : 40,
-            "key.bodyoffset" : 1699,
-            "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 64,
-            "key.name" : "element",
-            "key.namelength" : 7,
-            "key.nameoffset" : 1680,
-            "key.offset" : 1676,
-            "key.typename" : "Element"
-          }
-        ],
-        "key.typename" : "BlueprintHeaderFooterContent.Protocol",
-        "key.typeusr" : "$s16BlueprintUILists0A19HeaderFooterContent_pmD",
-        "key.usr" : "s:16BlueprintUILists0A19HeaderFooterContentP"
       }
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Exports.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Exports.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 209,
     "key.offset" : 0,
@@ -1601,7 +1489,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 5198,
     "key.offset" : 0,
@@ -1610,7 +1498,7 @@
         "key.annotated_decl" : "struct HeaderFooter<Content> : AnyHeaderFooter<\/Type> where Content : HeaderFooterContent<\/Type><\/Declaration>",
         "key.bodylength" : 3998,
         "key.bodyoffset" : 159,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> HeaderFooter<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyHeaderFooter<\/ref.protocol> where<\/syntaxtype.keyword> Content : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 4023,
@@ -1652,14 +1540,14 @@
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
-            "key.doc.full_as_xml" : "init(_:isEquivalent:element:background:pressedBackground:configure:)<\/Name>s:10ListableUI12HeaderFooterV16BlueprintUIListsE_12isEquivalent7element10background17pressedBackground9configureACyAD0ecD14ContentWrapperVyqd__GGqd___Sbqd___qd__tc0eB07Element_pqd__cAnO_pSgqd__cAPqd__cyAMzXEtcALRszlufc<\/USR>public init<Represented>(_ representing: Represented, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element? = { _ in nil }, pressedBackground: @escaping (Represented) -> Element? = { _ in nil }, configure: (inout HeaderFooter<BlueprintHeaderFooterContentWrapper<Represented>>) -> () = { _ in }) where Content == BlueprintUILists.BlueprintHeaderFooterContentWrapper<Represented><\/Declaration>Provides a way to create a HeaderFooter<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintHeaderFooterContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your header or footer is to be used in more than one place, it is recommended that you create a BlueprintHeaderFooterContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.doc.full_as_xml" : "init(_:isEquivalent:element:background:pressedBackground:configure:)<\/Name>s:10ListableUI12HeaderFooterV16BlueprintUIListsE_12isEquivalent7element10background17pressedBackground9configureACyAD0ecD14ContentWrapperVyqd__GGqd___Sbqd___qd__tc0eB07Element_pqd__cAnO_pSgqd__cAPqd__cyAMzXEtcALRszlufc<\/USR>public init<Represented>(_ representing: Represented, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element? = { _ in nil }, pressedBackground: @escaping (Represented) -> Element? = { _ in nil }, configure: (inout HeaderFooter<BlueprintHeaderFooterContentWrapper<Represented>>) -> () = { _ in }) where Content == BlueprintUILists.BlueprintHeaderFooterContentWrapper<Represented><\/Declaration>Provides a way to create a HeaderFooter<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintHeaderFooterContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your header or footer is to be used in more than one place, it is recommended that you create a BlueprintHeaderFooterContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 44,
             "key.doc.name" : "init(_:isEquivalent:element:background:pressedBackground:configure:)",
             "key.doc.type" : "Function",
             "key.doclength" : 1092,
             "key.docoffset" : 164,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> representing<\/decl.var.parameter.name>: Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, isEquivalent<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, element<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, background<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _ in nil }<\/decl.var.parameter>, pressedBackground<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _ in nil }<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><BlueprintHeaderFooterContentWrapper<\/ref.struct><Represented<\/ref.generic_type_param>>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> Content == BlueprintHeaderFooterContentWrapper<\/ref.struct><Represented><\/decl.generic_type_requirement><\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 942,
@@ -1678,13 +1566,13 @@
                 "key.annotated_decl" : "init(_:build:)<\/RelatedName>"
               },
               {
-                "key.annotated_decl" : "init(_:sizing:layout:onTap:)<\/RelatedName>"
+                "key.annotated_decl" : "init(_:sizing:layouts:onTap:)<\/RelatedName>"
               }
             ],
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Represented<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
                 "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 11,
@@ -1733,14 +1621,14 @@
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
-            "key.doc.full_as_xml" : "init(_:element:background:pressedBackground:configure:)<\/Name>s:10ListableUI12HeaderFooterV16BlueprintUIListsE_7element10background17pressedBackground9configureACyAD0ecD14ContentWrapperVyqd__GGqd___0eB07Element_pqd__cAmN_pSgqd__cAOqd__cyALzXEtcAKRszSQRd__lufc<\/USR>public init<Represented>(_ representing: Represented, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element? = { _ in nil }, pressedBackground: @escaping (Represented) -> Element? = { _ in nil }, configure: (inout HeaderFooter<BlueprintHeaderFooterContentWrapper<Represented>>) -> () = { _ in }) where Content == BlueprintUILists.BlueprintHeaderFooterContentWrapper<Represented>, Represented : Equatable<\/Declaration>Provides a way to create a HeaderFooter<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintHeaderFooterContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your header or footer is to be used in more than one place, it is recommended that you create a BlueprintHeaderFooterContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.doc.full_as_xml" : "init(_:element:background:pressedBackground:configure:)<\/Name>s:10ListableUI12HeaderFooterV16BlueprintUIListsE_7element10background17pressedBackground9configureACyAD0ecD14ContentWrapperVyqd__GGqd___0eB07Element_pqd__cAmN_pSgqd__cAOqd__cyALzXEtcAKRszSQRd__lufc<\/USR>public init<Represented>(_ representing: Represented, element: @escaping (Represented) -> Element, background: @escaping (Represented) -> Element? = { _ in nil }, pressedBackground: @escaping (Represented) -> Element? = { _ in nil }, configure: (inout HeaderFooter<BlueprintHeaderFooterContentWrapper<Represented>>) -> () = { _ in }) where Content == BlueprintUILists.BlueprintHeaderFooterContentWrapper<Represented>, Represented : Equatable<\/Declaration>Provides a way to create a HeaderFooter<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintHeaderFooterContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your header or footer is to be used in more than one place, it is recommended that you create a BlueprintHeaderFooterContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 97,
             "key.doc.name" : "init(_:element:background:pressedBackground:configure:)",
             "key.doc.type" : "Function",
             "key.doclength" : 1023,
             "key.docoffset" : 2219,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> representing<\/decl.var.parameter.name>: Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, element<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, background<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _ in nil }<\/decl.var.parameter>, pressedBackground<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _ in nil }<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><BlueprintHeaderFooterContentWrapper<\/ref.struct><Represented<\/ref.generic_type_param>>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> Content == BlueprintHeaderFooterContentWrapper<\/ref.struct><Represented><\/decl.generic_type_requirement>, Represented : Equatable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 903,
@@ -1759,13 +1647,13 @@
                 "key.annotated_decl" : "init(_:build:)<\/RelatedName>"
               },
               {
-                "key.annotated_decl" : "init(_:sizing:layout:onTap:)<\/RelatedName>"
+                "key.annotated_decl" : "init(_:sizing:layouts:onTap:)<\/RelatedName>"
               }
             ],
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Represented<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
                 "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 11,
@@ -1805,8 +1693,8 @@
         "key.doc.column" : 15,
         "key.doc.comment" : "The `BlueprintHeaderFooterContent` type that is used to provide\na lightweight way to present an `Element`, without needing to provide an entirely\nnew `BlueprintHeaderFooterContent` type.",
         "key.doc.declaration" : "public struct BlueprintHeaderFooterContentWrapper : BlueprintHeaderFooterContent",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
-        "key.doc.full_as_xml" : "BlueprintHeaderFooterContentWrapper<\/Name>s:16BlueprintUILists0A26HeaderFooterContentWrapperV<\/USR>public struct BlueprintHeaderFooterContentWrapper<Represented> : BlueprintHeaderFooterContent<\/Declaration>The BlueprintHeaderFooterContent<\/codeVoice> type that is used to provide a lightweight way to present an Element<\/codeVoice>, without needing to provide an entirely new BlueprintHeaderFooterContent<\/codeVoice> type.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+        "key.doc.full_as_xml" : "BlueprintHeaderFooterContentWrapper<\/Name>s:16BlueprintUILists0A26HeaderFooterContentWrapperV<\/USR>public struct BlueprintHeaderFooterContentWrapper<Represented> : BlueprintHeaderFooterContent<\/Declaration>The BlueprintHeaderFooterContent<\/codeVoice> type that is used to provide a lightweight way to present an Element<\/codeVoice>, without needing to provide an entirely new BlueprintHeaderFooterContent<\/codeVoice> type.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 125,
         "key.doc.name" : "BlueprintHeaderFooterContentWrapper",
         "key.doc.type" : "Class",
@@ -1819,7 +1707,7 @@
             "key.offset" : 4425
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> BlueprintHeaderFooterContentWrapper<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>> : BlueprintHeaderFooterContent<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -1838,7 +1726,7 @@
         "key.substructure" : [
           {
             "key.annotated_decl" : "Represented<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 11,
@@ -1863,7 +1751,7 @@
                 "key.offset" : 4460
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> representing<\/decl.name>: Represented<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 30,
@@ -1881,7 +1769,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let isEquivalentProvider: (Represented<\/Type>, Represented<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isEquivalentProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 61,
@@ -1899,7 +1787,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let elementProvider: (Represented<\/Type>) -> Element<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> elementProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 46,
@@ -1917,7 +1805,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let backgroundProvider: (Represented<\/Type>) -> Element<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> backgroundProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 50,
@@ -1935,7 +1823,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let pressedBackgroundProvider: (Represented<\/Type>) -> Element<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> pressedBackgroundProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 57,
@@ -1962,7 +1850,7 @@
             ],
             "key.bodylength" : 78,
             "key.bodyoffset" : 4792,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 122,
@@ -2004,12 +1892,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "elementRepresentation<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp<\/USR>var elementRepresentation: Element { get }<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "elementRepresentation<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP21elementRepresentation0A2UI7Element_pvp<\/USR>var elementRepresentation: Element { get }<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 71,
             "key.doc.name" : "elementRepresentation",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> elementRepresentation<\/decl.name>: Element<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 91,
@@ -2051,12 +1939,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "background<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp<\/USR>var background: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside pressedBackground<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "background<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP10background0A2UI7Element_pSgvp<\/USR>var background: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside pressedBackground<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 81,
             "key.doc.name" : "background",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> background<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 84,
@@ -2098,12 +1986,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "pressedBackground<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp<\/USR>var pressedBackground: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed. You usually provide this method alongside background<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintHeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "pressedBackground<\/Name>s:16BlueprintUILists0A19HeaderFooterContentP17pressedBackground0A2UI7Element_pSgvp<\/USR>var pressedBackground: Element? { get }<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is pressed. You usually provide this method alongside background<\/codeVoice>, if your header has an onTap<\/codeVoice> handler.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para>This documentation comment was inherited from BlueprintHeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 90,
             "key.doc.name" : "pressedBackground",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pressedBackground<\/decl.name>: Element<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 98,
@@ -2131,7 +2019,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 6130,
     "key.offset" : 0,
@@ -2140,7 +2028,7 @@
         "key.annotated_decl" : "struct Item<Content> : AnyItem<\/Type> where Content : ItemContent<\/Type><\/Declaration>",
         "key.bodylength" : 4589,
         "key.bodyoffset" : 143,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 4606,
@@ -2182,14 +2070,14 @@
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
-            "key.doc.full_as_xml" : "init(_:identifier:isEquivalent:element:background:selectedBackground:configure:)<\/Name>s:10ListableUI4ItemV16BlueprintUIListsE_10identifier12isEquivalent7element10background18selectedBackground9configureACyAD0dC14ContentWrapperVyqd__qd_0_GGqd___s7KeyPathCyqd__qd_0_GSbqd___qd__tc0dB07Element_pqd___AA05ApplycN4InfoVtcArS_pSgqd___AUtcAVqd___AUtcyANzXEtcAMRszSHRd_0_r0_lufc<\/USR>public init<Represented, IDType>(_ representing: Represented, identifier: KeyPath<Represented, IDType>, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, configure: (inout Item<BlueprintItemContentWrapper<Represented, IDType>>) -> () = { _ in }) where Content == BlueprintUILists.BlueprintItemContentWrapper<Represented, IDType>, IDType : Hashable<\/Declaration>Provides a way to create an Item<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintItemContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input, a key path for the backing identifier value, and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your item is to be used in more than one place, it is recommended that you create a BlueprintItemContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
+            "key.doc.full_as_xml" : "init(_:identifier:isEquivalent:element:background:selectedBackground:configure:)<\/Name>s:10ListableUI4ItemV16BlueprintUIListsE_10identifier12isEquivalent7element10background18selectedBackground9configureACyAD0dC14ContentWrapperVyqd__qd_0_GGqd___s7KeyPathCyqd__qd_0_GSbqd___qd__tc0dB07Element_pqd___AA05ApplycN4InfoVtcArS_pSgqd___AUtcAVqd___AUtcyANzXEtcAMRszSHRd_0_r0_lufc<\/USR>public init<Represented, IDType>(_ representing: Represented, identifier: KeyPath<Represented, IDType>, isEquivalent: @escaping (Represented, Represented) -> Bool, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, configure: (inout Item<BlueprintItemContentWrapper<Represented, IDType>>) -> () = { _ in }) where Content == BlueprintUILists.BlueprintItemContentWrapper<Represented, IDType>, IDType : Hashable<\/Declaration>Provides a way to create an Item<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintItemContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input, a key path for the backing identifier value, and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your item is to be used in more than one place, it is recommended that you create a BlueprintItemContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 44,
             "key.doc.name" : "init(_:identifier:isEquivalent:element:background:selectedBackground:configure:)",
             "key.doc.type" : "Function",
             "key.doclength" : 1174,
             "key.docoffset" : 148,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>, IDType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> representing<\/decl.var.parameter.name>: Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, identifier<\/decl.var.parameter.argument_label>: KeyPath<\/ref.class><Represented<\/ref.generic_type_param>, IDType<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, isEquivalent<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, element<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, background<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in nil }<\/decl.var.parameter>, selectedBackground<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in nil }<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> Item<\/ref.struct><BlueprintItemContentWrapper<\/ref.struct><Represented<\/ref.generic_type_param>, IDType<\/ref.generic_type_param>>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> Content == BlueprintItemContentWrapper<\/ref.struct><Represented, IDType><\/decl.generic_type_requirement>, IDType : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1167,
@@ -2208,13 +2096,13 @@
                 "key.annotated_decl" : "init(_:build:)<\/RelatedName>"
               },
               {
-                "key.annotated_decl" : "init(_:sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)<\/RelatedName>"
+                "key.annotated_decl" : "init(_:sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)<\/RelatedName>"
               }
             ],
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Represented<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
                 "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 11,
@@ -2238,7 +2126,7 @@
                     "key.offset" : 1358
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
                 "key.fully_annotated_decl" : "IDType<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -2292,14 +2180,14 @@
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
-            "key.doc.full_as_xml" : "init(_:identifier:element:background:selectedBackground:configure:)<\/Name>s:10ListableUI4ItemV16BlueprintUIListsE_10identifier7element10background18selectedBackground9configureACyAD0dC14ContentWrapperVyqd__qd_0_GGqd___s7KeyPathCyqd__qd_0_G0dB07Element_pqd___AA05ApplycL4InfoVtcAqR_pSgqd___ATtcAUqd___ATtcyAMzXEtcALRszSQRd__SHRd_0_r0_lufc<\/USR>public init<Represented, IDType>(_ representing: Represented, identifier: KeyPath<Represented, IDType>, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, configure: (inout Item<BlueprintItemContentWrapper<Represented, IDType>>) -> () = { _ in }) where Content == BlueprintUILists.BlueprintItemContentWrapper<Represented, IDType>, Represented : Equatable, IDType : Hashable<\/Declaration>Provides a way to create an Item<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintItemContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input, a key path for the backing identifier value, and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your item is to be used in more than one place, it is recommended that you create a BlueprintItemContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
+            "key.doc.full_as_xml" : "init(_:identifier:element:background:selectedBackground:configure:)<\/Name>s:10ListableUI4ItemV16BlueprintUIListsE_10identifier7element10background18selectedBackground9configureACyAD0dC14ContentWrapperVyqd__qd_0_GGqd___s7KeyPathCyqd__qd_0_G0dB07Element_pqd___AA05ApplycL4InfoVtcAqR_pSgqd___ATtcAUqd___ATtcyAMzXEtcALRszSQRd__SHRd_0_r0_lufc<\/USR>public init<Represented, IDType>(_ representing: Represented, identifier: KeyPath<Represented, IDType>, element: @escaping (Represented, ApplyItemContentInfo) -> Element, background: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, selectedBackground: @escaping (Represented, ApplyItemContentInfo) -> Element? = { _, _ in nil }, configure: (inout Item<BlueprintItemContentWrapper<Represented, IDType>>) -> () = { _ in }) where Content == BlueprintUILists.BlueprintItemContentWrapper<Represented, IDType>, Represented : Equatable, IDType : Hashable<\/Declaration>Provides a way to create an Item<\/codeVoice> for your Blueprint elements without requiring the creation of a new BlueprintItemContent<\/codeVoice> struct.<\/Para><\/Abstract>Most arguments on this method are not required – you must only provide an input, a key path for the backing identifier value, and an element provider.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This initializer is helpful if you have to nest an existing element that needs to be used in a single place, without needing to define an entirely new type.<\/Para>If your item is to be used in more than one place, it is recommended that you create a BlueprintItemContent<\/codeVoice> struct to share logic to avoid duplicate code.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 102,
             "key.doc.name" : "init(_:identifier:element:background:selectedBackground:configure:)",
             "key.doc.type" : "Function",
             "key.doclength" : 1106,
             "key.docoffset" : 2510,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>, IDType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> representing<\/decl.var.parameter.name>: Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, identifier<\/decl.var.parameter.argument_label>: KeyPath<\/ref.class><Represented<\/ref.generic_type_param>, IDType<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, element<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, background<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in nil }<\/decl.var.parameter>, selectedBackground<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in nil }<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> Item<\/ref.struct><BlueprintItemContentWrapper<\/ref.struct><Represented<\/ref.generic_type_param>, IDType<\/ref.generic_type_param>>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> Content == BlueprintItemContentWrapper<\/ref.struct><Represented, IDType><\/decl.generic_type_requirement>, Represented : Equatable<\/ref.protocol><\/decl.generic_type_requirement>, IDType : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1104,
@@ -2318,13 +2206,13 @@
                 "key.annotated_decl" : "init(_:build:)<\/RelatedName>"
               },
               {
-                "key.annotated_decl" : "init(_:sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)<\/RelatedName>"
+                "key.annotated_decl" : "init(_:sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)<\/RelatedName>"
               }
             ],
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Represented<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
                 "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 11,
@@ -2348,7 +2236,7 @@
                     "key.offset" : 3652
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
                 "key.fully_annotated_decl" : "IDType<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -2393,8 +2281,8 @@
         "key.doc.column" : 15,
         "key.doc.comment" : "The `BlueprintItemContent` type that is used to provide\na lightweight way to present an `Element`, without needing to provide an entirely\nnew `BlueprintItemContent` type.",
         "key.doc.declaration" : "public struct BlueprintItemContentWrapper : BlueprintItemContent where IDType : Hashable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
-        "key.doc.full_as_xml" : "BlueprintItemContentWrapper<\/Name>s:16BlueprintUILists0A18ItemContentWrapperV<\/USR>public struct BlueprintItemContentWrapper<Represented, IDType> : BlueprintItemContent where IDType : Hashable<\/Declaration>The BlueprintItemContent<\/codeVoice> type that is used to provide a lightweight way to present an Element<\/codeVoice>, without needing to provide an entirely new BlueprintItemContent<\/codeVoice> type.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
+        "key.doc.full_as_xml" : "BlueprintItemContentWrapper<\/Name>s:16BlueprintUILists0A18ItemContentWrapperV<\/USR>public struct BlueprintItemContentWrapper<Represented, IDType> : BlueprintItemContent where IDType : Hashable<\/Declaration>The BlueprintItemContent<\/codeVoice> type that is used to provide a lightweight way to present an Element<\/codeVoice>, without needing to provide an entirely new BlueprintItemContent<\/codeVoice> type.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 135,
         "key.doc.name" : "BlueprintItemContentWrapper",
         "key.doc.type" : "Class",
@@ -2407,7 +2295,7 @@
             "key.offset" : 4993
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> BlueprintItemContentWrapper<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>, IDType<\/decl.generic_type_param.name><\/decl.generic_type_param>> : BlueprintItemContent<\/ref.protocol> where<\/syntaxtype.keyword> IDType : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -2426,7 +2314,7 @@
         "key.substructure" : [
           {
             "key.annotated_decl" : "Represented<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 11,
@@ -2450,7 +2338,7 @@
                 "key.offset" : 4981
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "IDType<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -2480,7 +2368,7 @@
                 "key.offset" : 5020
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> representing<\/decl.name>: Represented<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 30,
@@ -2498,7 +2386,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let identifierKeyPath: KeyPath<\/Type><Represented<\/Type>, IDType<\/Type>><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifierKeyPath<\/decl.name>: KeyPath<\/ref.class><Represented<\/ref.generic_type_param>, IDType<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 52,
@@ -2516,7 +2404,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let isEquivalentProvider: (Represented<\/Type>, Represented<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isEquivalentProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 61,
@@ -2534,7 +2422,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let elementProvider: (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> elementProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 68,
@@ -2552,7 +2440,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let backgroundProvider: (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> backgroundProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 72,
@@ -2570,7 +2458,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let selectedBackgroundProvider: (Represented<\/Type>, ApplyItemContentInfo<\/Type>) -> Element<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> selectedBackgroundProvider<\/decl.name>: (Represented<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 80,
@@ -2610,12 +2498,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp<\/USR>var identifier: ListableUI.Identifier<Self> { get }<\/Declaration>Identifies the content across updates to the list. This value must remain the same, otherwise the content will be considered a new item, and the old one removed from the list.<\/Para><\/Abstract>Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier.<\/Para>If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp<\/USR>var identifier: ListableUI.Identifier<Self> { get }<\/Declaration>Identifies the content across updates to the list. This value must remain the same, otherwise the content will be considered a new item, and the old one removed from the list.<\/Para><\/Abstract>Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier.<\/Para>If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 54,
             "key.doc.name" : "identifier",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.class><`Self`><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 106,
@@ -2660,12 +2548,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Return false if the content’ changed based on the old value passed into the function.<\/Para><\/Abstract>If this method returns false, the row representing the content is reloaded.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method when ItemContent <\/codeVoice> conforms to Equatable<\/codeVoice> which returns self == other<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Return false if the content’ changed based on the old value passed into the function.<\/Para><\/Abstract>If this method returns false, the row representing the content is reloaded.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method when ItemContent <\/codeVoice> conforms to Equatable<\/codeVoice> which returns self == other<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 105,
             "key.doc.name" : "isEquivalent(to:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 122,
@@ -2710,12 +2598,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "element(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF<\/USR>func element(with info: ApplyItemContentInfo) -> Element<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>This documentation comment was inherited from BlueprintItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "element(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP7element4with0A2UI7Element_p08ListableG005ApplycD4InfoV_tF<\/USR>func element(with info: ApplyItemContentInfo) -> Element<\/Declaration>Required. Create and return the Blueprint element used to represent the content.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>This documentation comment was inherited from BlueprintItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 70,
             "key.doc.name" : "element(with:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> element<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 118,
@@ -2763,12 +2651,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "backgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF<\/USR>func backgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside selectedBackgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para>This documentation comment was inherited from BlueprintItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "backgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP17backgroundElement4with0A2UI0F0_pSg08ListableH005ApplycD4InfoV_tF<\/USR>func backgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content. You usually provide this method alongside selectedBackgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no background.<\/Para>This documentation comment was inherited from BlueprintItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 83,
             "key.doc.name" : "backgroundElement(with:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> backgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 132,
@@ -2816,12 +2704,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
-            "key.doc.full_as_xml" : "selectedBackgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is selected or highlighted. You usually provide this method alongside backgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para>This documentation comment was inherited from BlueprintItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/BlueprintItemContent.swift",
+            "key.doc.full_as_xml" : "selectedBackgroundElement(with:)<\/Name>s:16BlueprintUILists0A11ItemContentP25selectedBackgroundElement4with0A2UI0G0_pSg08ListableI005ApplycD4InfoV_tF<\/USR>func selectedBackgroundElement(with info: ApplyItemContentInfo) -> Element?<\/Declaration>Optional. Create and return the Blueprint element used to represent the background of the content when it is selected or highlighted. You usually provide this method alongside backgroundElement<\/codeVoice>, if your content supports selection or highlighting.<\/Para><\/Abstract>You can use the provided ApplyItemContentInfo<\/codeVoice> to vary the appearance of the element based on the current state of the item.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>The default implementation of this method returns nil, and provides no selected background.<\/Para>This documentation comment was inherited from BlueprintItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 95,
             "key.doc.name" : "selectedBackgroundElement(with:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> selectedBackgroundElement<\/decl.name>(with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Element<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 148,
@@ -2852,7 +2740,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 4241,
     "key.offset" : 0,
@@ -2886,8 +2774,8 @@
             "Para" : "When being laid out, a `List` will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a `ConstrainedSize`, or other size constraining element."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
-        "key.doc.full_as_xml" : "List<\/Name>s:16BlueprintUILists4ListV<\/USR>public struct List : Element<\/Declaration>A Blueprint element which can be used to display a Listable ListView<\/codeVoice> within an element tree.<\/Para><\/Abstract>You should use the List<\/codeVoice> element as follows, just like you’d use the configure(with:)<\/codeVoice> method on ListView<\/codeVoice> itself.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The parameter passed to the initialization closure is an instance of ListProperties<\/codeVoice>, which holds the various configuration options and content for the list. See ListProperties<\/codeVoice> for a full overview of all the configuration options available such as animation, layout configuration, etc.<\/Para>When being laid out, a List<\/codeVoice> will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a ConstrainedSize<\/codeVoice>, or other size constraining element.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
+        "key.doc.full_as_xml" : "List<\/Name>s:16BlueprintUILists4ListV<\/USR>public struct List : Element<\/Declaration>A Blueprint element which can be used to display a Listable ListView<\/codeVoice> within an element tree.<\/Para><\/Abstract>You should use the List<\/codeVoice> element as follows, just like you’d use the configure(with:)<\/codeVoice> method on ListView<\/codeVoice> itself.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The parameter passed to the initialization closure is an instance of ListProperties<\/codeVoice>, which holds the various configuration options and content for the list. See ListProperties<\/codeVoice> for a full overview of all the configuration options available such as animation, layout configuration, etc.<\/Para>When being laid out, a List<\/codeVoice> will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a ConstrainedSize<\/codeVoice>, or other size constraining element.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 42,
         "key.doc.name" : "List",
         "key.doc.type" : "Class",
@@ -2900,7 +2788,7 @@
             "key.offset" : 1321
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> List<\/decl.name> : Element<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -2935,14 +2823,14 @@
                 "Para" : "When it comes time to render the `List` on screen, `ListView.configure(with: properties)` is called to update the on-screen list with the provided properties."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
-            "key.doc.full_as_xml" : "properties<\/Name>s:16BlueprintUILists4ListV10properties10ListableUI0C10PropertiesVvp<\/USR>public var properties: ListProperties<\/Declaration>The properties which back the on-screen list.<\/Para><\/Abstract>When it comes time to render the List<\/codeVoice> on screen, ListView.configure(with: properties)<\/codeVoice> is called to update the on-screen list with the provided properties.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
+            "key.doc.full_as_xml" : "properties<\/Name>s:16BlueprintUILists4ListV10properties10ListableUI0C10PropertiesVvp<\/USR>public var properties: ListProperties<\/Declaration>The properties which back the on-screen list.<\/Para><\/Abstract>When it comes time to render the List<\/codeVoice> on screen, ListView.configure(with: properties)<\/codeVoice> is called to update the on-screen list with the provided properties.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 49,
             "key.doc.name" : "properties",
             "key.doc.type" : "Other",
             "key.doclength" : 241,
             "key.docoffset" : 1335,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> properties<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -2976,14 +2864,14 @@
                 "Para" : "See the `ListSizing` documentation for more."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
-            "key.doc.full_as_xml" : "sizing<\/Name>s:16BlueprintUILists4ListV6sizing10ListableUI0C6SizingOvp<\/USR>public var sizing: ListSizing<\/Declaration>How the List<\/codeVoice> is measured when the element is laid out by Blueprint.  Defaults to .fillParent<\/codeVoice>, which means it will take up all the size it is given. You can change this to .measureContent<\/codeVoice> to instead measure the optimal size.<\/Para><\/Abstract>See the ListSizing<\/codeVoice> documentation for more.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
+            "key.doc.full_as_xml" : "sizing<\/Name>s:16BlueprintUILists4ListV6sizing10ListableUI0C6SizingOvp<\/USR>public var sizing: ListSizing<\/Declaration>How the List<\/codeVoice> is measured when the element is laid out by Blueprint.  Defaults to .fillParent<\/codeVoice>, which means it will take up all the size it is given. You can change this to .measureContent<\/codeVoice> to instead measure the optimal size.<\/Para><\/Abstract>See the ListSizing<\/codeVoice> documentation for more.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 57,
             "key.doc.name" : "sizing",
             "key.doc.type" : "Other",
             "key.doclength" : 319,
             "key.docoffset" : 1628,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: ListSizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -3022,14 +2910,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Create a new list, configured with the provided properties,\nconfigured with the provided `ListProperties` builder.",
             "key.doc.declaration" : "public init(sizing: ListSizing = .fillParent, build: ListProperties.Build)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
-            "key.doc.full_as_xml" : "init(sizing:build:)<\/Name>s:16BlueprintUILists4ListV6sizing5buildAC10ListableUI0C6SizingO_yAF0C10PropertiesVzXEtcfc<\/USR>public init(sizing: ListSizing = .fillParent, build: ListProperties.Build)<\/Declaration>Create a new list, configured with the provided properties, configured with the provided ListProperties<\/codeVoice> builder.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
+            "key.doc.full_as_xml" : "init(sizing:build:)<\/Name>s:16BlueprintUILists4ListV6sizing5buildAC10ListableUI0C6SizingO_yAF0C10PropertiesVzXEtcfc<\/USR>public init(sizing: ListSizing = .fillParent, build: ListProperties.Build)<\/Declaration>Create a new list, configured with the provided properties, configured with the provided ListProperties<\/codeVoice> builder.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 65,
             "key.doc.name" : "init(sizing:build:)",
             "key.doc.type" : "Function",
             "key.doclength" : 127,
             "key.docoffset" : 2042,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(sizing<\/decl.var.parameter.argument_label>: ListSizing<\/ref.enum><\/decl.var.parameter.type> = .fillParent<\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: ListProperties<\/ref.struct>.Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 185,
@@ -3080,12 +2968,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-            "key.doc.full_as_xml" : "content<\/Name>s:11BlueprintUI7ElementP7contentAA0C7ContentVvp<\/USR>var content: BlueprintUI.ElementContent { get }<\/Declaration>Returns the content of this element.<\/Para><\/Abstract>Elements generally fall into two types:<\/Para>Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some content that can be measured. Leaf elements typically instantiate their content with ElementContent(measurable:)<\/codeVoice> or similar.<\/Para><\/Item>Container elements: these element have one or more children, which are arranged by a layout implementation. Container elements typically use methods like ElementContent(layout:configure:)<\/codeVoice> to instantiate their content.<\/Para><\/Item><\/List-Bullet>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+            "key.doc.full_as_xml" : "content<\/Name>s:11BlueprintUI7ElementP7contentAA0C7ContentVvp<\/USR>var content: BlueprintUI.ElementContent { get }<\/Declaration>Returns the content of this element.<\/Para><\/Abstract>Elements generally fall into two types:<\/Para>Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some content that can be measured. Leaf elements typically instantiate their content with ElementContent(measurable:)<\/codeVoice> or similar.<\/Para><\/Item>Container elements: these element have one or more children, which are arranged by a layout implementation. Container elements typically use methods like ElementContent(layout:configure:)<\/codeVoice> to instantiate their content.<\/Para><\/Item><\/List-Bullet>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 52,
             "key.doc.name" : "content",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: ElementContent<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 238,
@@ -3127,8 +3015,8 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-            "key.doc.full_as_xml" : "backingViewDescription(bounds:subtreeExtent:)<\/Name>s:11BlueprintUI7ElementP22backingViewDescription6bounds13subtreeExtentAA0eF0VSgSo6CGRectV_AKSgtF<\/USR>func backingViewDescription(bounds: CGRect, subtreeExtent: CGRect?) -> BlueprintUI.ViewDescription?<\/Declaration>Returns an (optional) description of the view that should back this element.<\/Para><\/Abstract>bounds<\/Name>in<\/Direction>The bounds of this element after layout is complete.<\/Para><\/Discussion><\/Parameter>subtreeExtent<\/Name>in<\/Direction>A rectangle in the local coordinate space that contains any children. subtreeExtent<\/codeVoice> will be nil if there are no children.<\/Para><\/Discussion><\/Parameter><\/Parameters>An optional ViewDescription<\/codeVoice>.<\/Para><\/ResultDiscussion>In Blueprint, elements that are displayed using a live UIView<\/codeVoice> instance are referred to as “view-backed”. Elements become view-backed by returning a ViewDescription<\/codeVoice> value from this method.<\/Para>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+            "key.doc.full_as_xml" : "backingViewDescription(bounds:subtreeExtent:)<\/Name>s:11BlueprintUI7ElementP22backingViewDescription6bounds13subtreeExtentAA0eF0VSgSo6CGRectV_AKSgtF<\/USR>func backingViewDescription(bounds: CGRect, subtreeExtent: CGRect?) -> BlueprintUI.ViewDescription?<\/Declaration>Returns an (optional) description of the view that should back this element.<\/Para><\/Abstract>bounds<\/Name>in<\/Direction>The bounds of this element after layout is complete.<\/Para><\/Discussion><\/Parameter>subtreeExtent<\/Name>in<\/Direction>A rectangle in the local coordinate space that contains any children. subtreeExtent<\/codeVoice> will be nil if there are no children.<\/Para><\/Discussion><\/Parameter><\/Parameters>An optional ViewDescription<\/codeVoice>.<\/Para><\/ResultDiscussion>In Blueprint, elements that are displayed using a live UIView<\/codeVoice> instance are referred to as “view-backed”. Elements become view-backed by returning a ViewDescription<\/codeVoice> value from this method.<\/Para>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 64,
             "key.doc.name" : "backingViewDescription(bounds:subtreeExtent:)",
             "key.doc.parameters" : [
@@ -3155,7 +3043,7 @@
               }
             ],
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> backingViewDescription<\/decl.name>(bounds<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, subtreeExtent<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewDescription<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 107,
@@ -3203,12 +3091,12 @@
             "Para" : "When being laid out, a `List` will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a `ConstrainedSize`, or other size constraining element."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
-        "key.doc.full_as_xml" : "List<\/Name>s:16BlueprintUILists4ListV<\/USR>public struct List : Element<\/Declaration>A Blueprint element which can be used to display a Listable ListView<\/codeVoice> within an element tree.<\/Para><\/Abstract>You should use the List<\/codeVoice> element as follows, just like you’d use the configure(with:)<\/codeVoice> method on ListView<\/codeVoice> itself.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The parameter passed to the initialization closure is an instance of ListProperties<\/codeVoice>, which holds the various configuration options and content for the list. See ListProperties<\/codeVoice> for a full overview of all the configuration options available such as animation, layout configuration, etc.<\/Para>When being laid out, a List<\/codeVoice> will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a ConstrainedSize<\/codeVoice>, or other size constraining element.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
+        "key.doc.full_as_xml" : "List<\/Name>s:16BlueprintUILists4ListV<\/USR>public struct List : Element<\/Declaration>A Blueprint element which can be used to display a Listable ListView<\/codeVoice> within an element tree.<\/Para><\/Abstract>You should use the List<\/codeVoice> element as follows, just like you’d use the configure(with:)<\/codeVoice> method on ListView<\/codeVoice> itself.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The parameter passed to the initialization closure is an instance of ListProperties<\/codeVoice>, which holds the various configuration options and content for the list. See ListProperties<\/codeVoice> for a full overview of all the configuration options available such as animation, layout configuration, etc.<\/Para>When being laid out, a List<\/codeVoice> will take up as much space as it is allowed. If you’d like to constrain the size of a list, wrap it in a ConstrainedSize<\/codeVoice>, or other size constraining element.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 42,
         "key.doc.name" : "List",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> List<\/decl.name> : Element<\/ref.protocol><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1447,
@@ -3239,7 +3127,7 @@
                 "key.offset" : 2852
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
             "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListContent<\/decl.name> : Element<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -3259,7 +3147,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var properties: ListProperties<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> properties<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 31,
@@ -3278,7 +3166,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var sizing: ListSizing<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sizing<\/decl.name>: ListSizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 23,
@@ -3299,7 +3187,7 @@
                 "key.annotated_decl" : "init(properties: ListProperties<\/Type>, sizing: ListSizing<\/Type>, environment: Environment<\/Type>)<\/Declaration>",
                 "key.bodylength" : 219,
                 "key.bodyoffset" : 3089,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(properties<\/decl.var.parameter.argument_label>: ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: ListSizing<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: Environment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 349,
@@ -3313,7 +3201,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "var properties: ListProperties<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> properties<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 27,
@@ -3371,12 +3259,12 @@
                     "Note" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-                "key.doc.full_as_xml" : "content<\/Name>s:11BlueprintUI7ElementP7contentAA0C7ContentVvp<\/USR>var content: BlueprintUI.ElementContent { get }<\/Declaration>Returns the content of this element.<\/Para><\/Abstract>Elements generally fall into two types:<\/Para>Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some content that can be measured. Leaf elements typically instantiate their content with ElementContent(measurable:)<\/codeVoice> or similar.<\/Para><\/Item>Container elements: these element have one or more children, which are arranged by a layout implementation. Container elements typically use methods like ElementContent(layout:configure:)<\/codeVoice> to instantiate their content.<\/Para><\/Item><\/List-Bullet>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+                "key.doc.full_as_xml" : "content<\/Name>s:11BlueprintUI7ElementP7contentAA0C7ContentVvp<\/USR>var content: BlueprintUI.ElementContent { get }<\/Declaration>Returns the content of this element.<\/Para><\/Abstract>Elements generally fall into two types:<\/Para>Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some content that can be measured. Leaf elements typically instantiate their content with ElementContent(measurable:)<\/codeVoice> or similar.<\/Para><\/Item>Container elements: these element have one or more children, which are arranged by a layout implementation. Container elements typically use methods like ElementContent(layout:configure:)<\/codeVoice> to instantiate their content.<\/Para><\/Item><\/List-Bullet>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 52,
                 "key.doc.name" : "content",
                 "key.doc.type" : "Other",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: ElementContent<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 395,
@@ -3418,8 +3306,8 @@
                     "Note" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-                "key.doc.full_as_xml" : "backingViewDescription(bounds:subtreeExtent:)<\/Name>s:11BlueprintUI7ElementP22backingViewDescription6bounds13subtreeExtentAA0eF0VSgSo6CGRectV_AKSgtF<\/USR>func backingViewDescription(bounds: CGRect, subtreeExtent: CGRect?) -> BlueprintUI.ViewDescription?<\/Declaration>Returns an (optional) description of the view that should back this element.<\/Para><\/Abstract>bounds<\/Name>in<\/Direction>The bounds of this element after layout is complete.<\/Para><\/Discussion><\/Parameter>subtreeExtent<\/Name>in<\/Direction>A rectangle in the local coordinate space that contains any children. subtreeExtent<\/codeVoice> will be nil if there are no children.<\/Para><\/Discussion><\/Parameter><\/Parameters>An optional ViewDescription<\/codeVoice>.<\/Para><\/ResultDiscussion>In Blueprint, elements that are displayed using a live UIView<\/codeVoice> instance are referred to as “view-backed”. Elements become view-backed by returning a ViewDescription<\/codeVoice> value from this method.<\/Para>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+                "key.doc.full_as_xml" : "backingViewDescription(bounds:subtreeExtent:)<\/Name>s:11BlueprintUI7ElementP22backingViewDescription6bounds13subtreeExtentAA0eF0VSgSo6CGRectV_AKSgtF<\/USR>func backingViewDescription(bounds: CGRect, subtreeExtent: CGRect?) -> BlueprintUI.ViewDescription?<\/Declaration>Returns an (optional) description of the view that should back this element.<\/Para><\/Abstract>bounds<\/Name>in<\/Direction>The bounds of this element after layout is complete.<\/Para><\/Discussion><\/Parameter>subtreeExtent<\/Name>in<\/Direction>A rectangle in the local coordinate space that contains any children. subtreeExtent<\/codeVoice> will be nil if there are no children.<\/Para><\/Discussion><\/Parameter><\/Parameters>An optional ViewDescription<\/codeVoice>.<\/Para><\/ResultDiscussion>In Blueprint, elements that are displayed using a live UIView<\/codeVoice> instance are referred to as “view-backed”. Elements become view-backed by returning a ViewDescription<\/codeVoice> value from this method.<\/Para>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
                 "key.doc.line" : 64,
                 "key.doc.name" : "backingViewDescription(bounds:subtreeExtent:)",
                 "key.doc.parameters" : [
@@ -3446,7 +3334,7 @@
                   }
                 ],
                 "key.doc.type" : "Function",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/List.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/List.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> backingViewDescription<\/decl.name>(bounds<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, subtreeExtent<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewDescription<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 440,
@@ -3482,7 +3370,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 4872,
     "key.offset" : 0,
@@ -3516,8 +3404,8 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
-        "key.doc.full_as_xml" : "ListReorderGesture<\/Name>s:16BlueprintUILists18ListReorderGestureV<\/USR>public struct ListReorderGesture : Element<\/Declaration>An element that wraps your provided element, to enable support for user-driven re-ordering in a list view.<\/Para><\/Abstract>If you do not support reordering items, you do not need to add this element anywhere in your hierarchy.<\/Para>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para>In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber.<\/Para> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+        "key.doc.full_as_xml" : "ListReorderGesture<\/Name>s:16BlueprintUILists18ListReorderGestureV<\/USR>public struct ListReorderGesture : Element<\/Declaration>An element that wraps your provided element, to enable support for user-driven re-ordering in a list view.<\/Para><\/Abstract>If you do not support reordering items, you do not need to add this element anywhere in your hierarchy.<\/Para>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para>In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber.<\/Para> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 38,
         "key.doc.name" : "ListReorderGesture",
         "key.doc.type" : "Class",
@@ -3530,7 +3418,7 @@
             "key.offset" : 1116
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListReorderGesture<\/decl.name> : Element<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -3560,14 +3448,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The element which is being wrapped by the reorder gesture.",
             "key.doc.declaration" : "public var element: Element",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
-            "key.doc.full_as_xml" : "element<\/Name>s:16BlueprintUILists18ListReorderGestureV7element0A2UI7Element_pvp<\/USR>public var element: Element<\/Declaration>The element which is being wrapped by the reorder gesture.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.doc.full_as_xml" : "element<\/Name>s:16BlueprintUILists18ListReorderGestureV7element0A2UI7Element_pvp<\/USR>public var element: Element<\/Declaration>The element which is being wrapped by the reorder gesture.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 41,
             "key.doc.name" : "element",
             "key.doc.type" : "Other",
             "key.doclength" : 63,
             "key.docoffset" : 1130,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> element<\/decl.name>: Element<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -3596,14 +3484,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "If the gesture is enabled or not.",
             "key.doc.declaration" : "public var isEnabled: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
-            "key.doc.full_as_xml" : "isEnabled<\/Name>s:16BlueprintUILists18ListReorderGestureV9isEnabledSbvp<\/USR>public var isEnabled: Bool<\/Declaration>If the gesture is enabled or not.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.doc.full_as_xml" : "isEnabled<\/Name>s:16BlueprintUILists18ListReorderGestureV9isEnabledSbvp<\/USR>public var isEnabled: Bool<\/Declaration>If the gesture is enabled or not.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 44,
             "key.doc.name" : "isEnabled",
             "key.doc.type" : "Other",
             "key.doclength" : 38,
             "key.docoffset" : 1235,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 20,
@@ -3622,7 +3510,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "typealias ListReorderGesture<\/Type>.OnStart = () -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ListReorderGesture<\/ref.struct>.OnStart<\/decl.name> = () -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 30,
@@ -3640,7 +3528,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var onStart: OnStart<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> onStart<\/decl.name>: OnStart<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -3659,7 +3547,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "typealias ListReorderGesture<\/Type>.OnMove = (UIPanGestureRecognizer<\/Type>) -> ()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ListReorderGesture<\/ref.struct>.OnMove<\/decl.name> = (UIPanGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 49,
@@ -3677,7 +3565,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var onMove: OnMove<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> onMove<\/decl.name>: OnMove<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -3696,7 +3584,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "typealias ListReorderGesture<\/Type>.OnDone = () -> ()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ListReorderGesture<\/ref.struct>.OnDone<\/decl.name> = () -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 27,
@@ -3714,7 +3602,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var onDone: OnDone<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> onDone<\/decl.name>: OnDone<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -3750,14 +3638,14 @@
                 "Para" : "This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
-            "key.doc.full_as_xml" : "init(isEnabled:actions:wrapping:)<\/Name>s:16BlueprintUILists18ListReorderGestureV9isEnabled7actions8wrappingACSb_10ListableUI17ReorderingActionsC0aK07Element_ptcfc<\/USR>public init(isEnabled: Bool = true, actions: ReorderingActions, wrapping element: Element)<\/Declaration>Creates a new re-order gesture which wraps the provided element.<\/Para><\/Abstract>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.doc.full_as_xml" : "init(isEnabled:actions:wrapping:)<\/Name>s:16BlueprintUILists18ListReorderGestureV9isEnabled7actions8wrappingACSb_10ListableUI17ReorderingActionsC0aK07Element_ptcfc<\/USR>public init(isEnabled: Bool = true, actions: ReorderingActions, wrapping element: Element)<\/Declaration>Creates a new re-order gesture which wraps the provided element.<\/Para><\/Abstract>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 59,
             "key.doc.name" : "init(isEnabled:actions:wrapping:)",
             "key.doc.type" : "Function",
             "key.doclength" : 240,
             "key.docoffset" : 1524,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, actions<\/decl.var.parameter.argument_label>: ReorderingActions<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, wrapping<\/decl.var.parameter.argument_label> element<\/decl.var.parameter.name>: Element<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 348,
@@ -3808,12 +3696,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-            "key.doc.full_as_xml" : "content<\/Name>s:11BlueprintUI7ElementP7contentAA0C7ContentVvp<\/USR>var content: BlueprintUI.ElementContent { get }<\/Declaration>Returns the content of this element.<\/Para><\/Abstract>Elements generally fall into two types:<\/Para>Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some content that can be measured. Leaf elements typically instantiate their content with ElementContent(measurable:)<\/codeVoice> or similar.<\/Para><\/Item>Container elements: these element have one or more children, which are arranged by a layout implementation. Container elements typically use methods like ElementContent(layout:configure:)<\/codeVoice> to instantiate their content.<\/Para><\/Item><\/List-Bullet>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+            "key.doc.full_as_xml" : "content<\/Name>s:11BlueprintUI7ElementP7contentAA0C7ContentVvp<\/USR>var content: BlueprintUI.ElementContent { get }<\/Declaration>Returns the content of this element.<\/Para><\/Abstract>Elements generally fall into two types:<\/Para>Leaf elements, or elements that have no children. These elements commonly have an intrinsic size, or some content that can be measured. Leaf elements typically instantiate their content with ElementContent(measurable:)<\/codeVoice> or similar.<\/Para><\/Item>Container elements: these element have one or more children, which are arranged by a layout implementation. Container elements typically use methods like ElementContent(layout:configure:)<\/codeVoice> to instantiate their content.<\/Para><\/Item><\/List-Bullet>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 52,
             "key.doc.name" : "content",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: ElementContent<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 86,
@@ -3855,8 +3743,8 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-            "key.doc.full_as_xml" : "backingViewDescription(bounds:subtreeExtent:)<\/Name>s:11BlueprintUI7ElementP22backingViewDescription6bounds13subtreeExtentAA0eF0VSgSo6CGRectV_AKSgtF<\/USR>func backingViewDescription(bounds: CGRect, subtreeExtent: CGRect?) -> BlueprintUI.ViewDescription?<\/Declaration>Returns an (optional) description of the view that should back this element.<\/Para><\/Abstract>bounds<\/Name>in<\/Direction>The bounds of this element after layout is complete.<\/Para><\/Discussion><\/Parameter>subtreeExtent<\/Name>in<\/Direction>A rectangle in the local coordinate space that contains any children. subtreeExtent<\/codeVoice> will be nil if there are no children.<\/Para><\/Discussion><\/Parameter><\/Parameters>An optional ViewDescription<\/codeVoice>.<\/Para><\/ResultDiscussion>In Blueprint, elements that are displayed using a live UIView<\/codeVoice> instance are referred to as “view-backed”. Elements become view-backed by returning a ViewDescription<\/codeVoice> value from this method.<\/Para>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+            "key.doc.full_as_xml" : "backingViewDescription(bounds:subtreeExtent:)<\/Name>s:11BlueprintUI7ElementP22backingViewDescription6bounds13subtreeExtentAA0eF0VSgSo6CGRectV_AKSgtF<\/USR>func backingViewDescription(bounds: CGRect, subtreeExtent: CGRect?) -> BlueprintUI.ViewDescription?<\/Declaration>Returns an (optional) description of the view that should back this element.<\/Para><\/Abstract>bounds<\/Name>in<\/Direction>The bounds of this element after layout is complete.<\/Para><\/Discussion><\/Parameter>subtreeExtent<\/Name>in<\/Direction>A rectangle in the local coordinate space that contains any children. subtreeExtent<\/codeVoice> will be nil if there are no children.<\/Para><\/Discussion><\/Parameter><\/Parameters>An optional ViewDescription<\/codeVoice>.<\/Para><\/ResultDiscussion>In Blueprint, elements that are displayed using a live UIView<\/codeVoice> instance are referred to as “view-backed”. Elements become view-backed by returning a ViewDescription<\/codeVoice> value from this method.<\/Para>This documentation comment was inherited from Element<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 64,
             "key.doc.name" : "backingViewDescription(bounds:subtreeExtent:)",
             "key.doc.parameters" : [
@@ -3883,7 +3771,7 @@
               }
             ],
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> backingViewDescription<\/decl.name>(bounds<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, subtreeExtent<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewDescription<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 573,
@@ -3913,7 +3801,7 @@
       },
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "protocol Element : _Blueprint_Elements_Should_Be_Value_Types<\/Type><\/Declaration>",
+        "key.annotated_decl" : "protocol Element<\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.public",
@@ -3924,7 +3812,7 @@
         "key.bodylength" : 243,
         "key.bodyoffset" : 2883,
         "key.doc.column" : 17,
-        "key.doc.declaration" : "protocol Element : BlueprintUI._Blueprint_Elements_Should_Be_Value_Types",
+        "key.doc.declaration" : "protocol Element",
         "key.doc.discussion" : [
           {
             "Para" : "The ultimate purpose of an element is to provide visual content. This can be done in two ways:"
@@ -3939,13 +3827,13 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-        "key.doc.full_as_xml" : "Element<\/Name>s:11BlueprintUI7ElementP<\/USR>protocol Element : BlueprintUI._Blueprint_Elements_Should_Be_Value_Types<\/Declaration>Conforming types represent a rectangular content area in a two-dimensional layout space.<\/Para><\/Abstract>]]><\/rawHTML>The ultimate purpose of an element is to provide visual content. This can be done in two ways:<\/Para>By providing a view description (ViewDescription<\/codeVoice>).<\/Para><\/Item>By providing child elements that will be displayed recursively within the local coordinate space.<\/Para><\/Item><\/List-Bullet>]]><\/rawHTML>A custom element might look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ViewDescription? {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+        "key.doc.full_as_xml" : "Element<\/Name>s:11BlueprintUI7ElementP<\/USR>protocol Element<\/Declaration>Conforming types represent a rectangular content area in a two-dimensional layout space.<\/Para><\/Abstract>]]><\/rawHTML>The ultimate purpose of an element is to provide visual content. This can be done in two ways:<\/Para>By providing a view description (ViewDescription<\/codeVoice>).<\/Para><\/Item>By providing child elements that will be displayed recursively within the local coordinate space.<\/Para><\/Item><\/List-Bullet>]]><\/rawHTML>A custom element might look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> ViewDescription? {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 41,
         "key.doc.name" : "Element",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
-        "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> Element<\/decl.name> : _Blueprint_Elements_Should_Be_Value_Types<\/ref.protocol><\/decl.protocol>",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/Pods\/BlueprintUI\/BlueprintUI\/Sources\/Element\/Element.swift",
+        "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> Element<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 263,
         "key.modulename" : "BlueprintUI",
@@ -3965,14 +3853,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Wraps the element in a re-order gesture.",
             "key.doc.declaration" : "func listReorderGesture(with actions: ReorderingActions, isEnabled: Bool = true) -> Element",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
-            "key.doc.full_as_xml" : "listReorderGesture(with:isEnabled:)<\/Name>s:11BlueprintUI7ElementP0A7UIListsE18listReorderGesture4with9isEnabledAaB_p08ListableB017ReorderingActionsC_SbtF<\/USR>func listReorderGesture(with actions: ReorderingActions, isEnabled: Bool = true) -> Element<\/Declaration>Wraps the element in a re-order gesture.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.doc.full_as_xml" : "listReorderGesture(with:isEnabled:)<\/Name>s:11BlueprintUI7ElementP0A7UIListsE18listReorderGesture4with9isEnabledAaB_p08ListableB017ReorderingActionsC_SbtF<\/USR>func listReorderGesture(with actions: ReorderingActions, isEnabled: Bool = true) -> Element<\/Declaration>Wraps the element in a re-order gesture.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 103,
             "key.doc.name" : "listReorderGesture(with:isEnabled:)",
             "key.doc.type" : "Function",
             "key.doclength" : 45,
             "key.docoffset" : 2888,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listReorderGesture<\/decl.name>(with<\/decl.var.parameter.argument_label> actions<\/decl.var.parameter.name>: ReorderingActions<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, isEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>) -> Element<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 188,
@@ -4023,12 +3911,12 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
-        "key.doc.full_as_xml" : "ListReorderGesture<\/Name>s:16BlueprintUILists18ListReorderGestureV<\/USR>public struct ListReorderGesture : Element<\/Declaration>An element that wraps your provided element, to enable support for user-driven re-ordering in a list view.<\/Para><\/Abstract>If you do not support reordering items, you do not need to add this element anywhere in your hierarchy.<\/Para>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para>In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber.<\/Para> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+        "key.doc.full_as_xml" : "ListReorderGesture<\/Name>s:16BlueprintUILists18ListReorderGestureV<\/USR>public struct ListReorderGesture : Element<\/Declaration>An element that wraps your provided element, to enable support for user-driven re-ordering in a list view.<\/Para><\/Abstract>If you do not support reordering items, you do not need to add this element anywhere in your hierarchy.<\/Para>This element on its own has no visual appearance. Thus, you should still render your own reorder dragger \/ handle \/ etc in the passed in element.<\/Para>In the below example, we see how to set up the content of a simple item, which contains a text label and a reorder grabber.<\/Para> Element]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 38,
         "key.doc.name" : "ListReorderGesture",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListReorderGesture<\/decl.name> : Element<\/ref.protocol><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1729,
@@ -4064,7 +3952,7 @@
                 "key.offset" : 3217
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> GestureRecognizer<\/decl.name> : UIPanGestureRecognizer<\/ref.class><\/decl.class>",
             "key.inheritedtypes" : [
               {
@@ -4091,7 +3979,7 @@
                     "key.offset" : 3254
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onStart<\/decl.name>: OnStart<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 28,
@@ -4117,7 +4005,7 @@
                     "key.offset" : 3298
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onMove<\/decl.name>: OnMove<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 26,
@@ -4143,7 +4031,7 @@
                     "key.offset" : 3340
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onDone<\/decl.name>: OnDone<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 26,
@@ -4171,7 +4059,7 @@
                 ],
                 "key.bodylength" : 239,
                 "key.bodyoffset" : 3447,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
                 "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(target<\/decl.var.parameter.argument_label>: Any<\/syntaxtype.keyword>?<\/decl.var.parameter.type><\/decl.var.parameter>, action<\/decl.var.parameter.argument_label>: Selector<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 287,
@@ -4214,7 +4102,7 @@
                 ],
                 "key.bodylength" : 498,
                 "key.bodyoffset" : 3743,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
                 "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> updated<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 523,
@@ -4261,7 +4149,7 @@
                 "key.offset" : 4292
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> WrapperView<\/decl.name> : UIView<\/ref.class><\/decl.class>",
             "key.inheritedtypes" : [
               {
@@ -4281,7 +4169,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let recognizer: GestureRecognizer<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> recognizer<\/decl.name>: GestureRecognizer<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 34,
@@ -4301,7 +4189,7 @@
                 "key.annotated_decl" : "init(frame: CGRect<\/Type>, wrapping: ListReorderGesture<\/Type>)<\/Declaration>",
                 "key.bodylength" : 305,
                 "key.bodyoffset" : 4425,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/BlueprintUILists\/Sources\/ListReorderGesture.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, wrapping<\/decl.var.parameter.argument_label>: ListReorderGesture<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 366,
diff --git a/docs/JSON/ListableUI.json b/docs/JSON/ListableUI.json
index 268dbdefe..8a0bd1ad1 100644
--- a/docs/JSON/ListableUI.json
+++ b/docs/JSON/ListableUI.json
@@ -1,5 +1,5 @@
 [{
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 1531,
     "key.offset" : 0,
@@ -24,8 +24,8 @@
             "Para" : "For properties that are specific to individual layouts, see the `layoutAppearance` property on each layout type."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
-        "key.doc.full_as_xml" : "Appearance<\/Name>s:10ListableUI10AppearanceV<\/USR>public struct Appearance : Equatable<\/Declaration>Contains all the properties which affect the appearance of all possible kinds of list layouts.<\/Para><\/Abstract>For properties that are specific to individual layouts, see the layoutAppearance<\/codeVoice> property on each layout type.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
+        "key.doc.full_as_xml" : "Appearance<\/Name>s:10ListableUI10AppearanceV<\/USR>public struct Appearance : Equatable<\/Declaration>Contains all the properties which affect the appearance of all possible kinds of list layouts.<\/Para><\/Abstract>For properties that are specific to individual layouts, see the layoutAppearance<\/codeVoice> property on each layout type.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 15,
         "key.doc.name" : "Appearance",
         "key.doc.type" : "Class",
@@ -38,7 +38,7 @@
             "key.offset" : 349
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Appearance<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -73,14 +73,14 @@
             "key.doc.column" : 23,
             "key.doc.comment" : "The background color for the list.",
             "key.doc.declaration" : "public var backgroundColor: UIColor { get set }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
-            "key.doc.full_as_xml" : "backgroundColor<\/Name>s:10ListableUI10AppearanceV15backgroundColorSo7UIColorCvp<\/USR>public var backgroundColor: UIColor { get set }<\/Declaration>The background color for the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
+            "key.doc.full_as_xml" : "backgroundColor<\/Name>s:10ListableUI10AppearanceV15backgroundColorSo7UIColorCvp<\/USR>public var backgroundColor: UIColor { get set }<\/Declaration>The background color for the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 18,
             "key.doc.name" : "backgroundColor",
             "key.doc.type" : "Other",
             "key.doclength" : 39,
             "key.docoffset" : 365,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
             "key.fully_annotated_decl" : "@Color<\/ref.struct><\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> backgroundColor<\/decl.name>: UIColor<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
@@ -109,14 +109,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "If the list should display its scroll indicators.",
             "key.doc.declaration" : "public var showsScrollIndicators: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
-            "key.doc.full_as_xml" : "showsScrollIndicators<\/Name>s:10ListableUI10AppearanceV21showsScrollIndicatorsSbvp<\/USR>public var showsScrollIndicators: Bool<\/Declaration>If the list should display its scroll indicators.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
+            "key.doc.full_as_xml" : "showsScrollIndicators<\/Name>s:10ListableUI10AppearanceV21showsScrollIndicatorsSbvp<\/USR>public var showsScrollIndicators: Bool<\/Declaration>If the list should display its scroll indicators.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 21,
             "key.doc.name" : "showsScrollIndicators",
             "key.doc.type" : "Other",
             "key.doclength" : 54,
             "key.docoffset" : 461,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> showsScrollIndicators<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 32,
@@ -147,14 +147,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a new appearance object with the provided options.",
             "key.doc.declaration" : "public init(backgroundColor: UIColor = Self.defaultBackgroundColor, showsScrollIndicators: Bool = true, configure: (inout `Self`) -> () = { _ in })",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
-            "key.doc.full_as_xml" : "init(backgroundColor:showsScrollIndicators:configure:)<\/Name>s:10ListableUI10AppearanceV15backgroundColor21showsScrollIndicators9configureACSo7UIColorC_SbyACzXEtcfc<\/USR>public init(backgroundColor: UIColor = Self.defaultBackgroundColor, showsScrollIndicators: Bool = true, configure: (inout `Self`) -> () = { _ in })<\/Declaration>Creates a new appearance object with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
+            "key.doc.full_as_xml" : "init(backgroundColor:showsScrollIndicators:configure:)<\/Name>s:10ListableUI10AppearanceV15backgroundColor21showsScrollIndicators9configureACSo7UIColorC_SbyACzXEtcfc<\/USR>public init(backgroundColor: UIColor = Self.defaultBackgroundColor, showsScrollIndicators: Bool = true, configure: (inout `Self`) -> () = { _ in })<\/Declaration>Creates a new appearance object with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 24,
             "key.doc.name" : "init(backgroundColor:showsScrollIndicators:configure:)",
             "key.doc.type" : "Function",
             "key.doclength" : 63,
             "key.docoffset" : 572,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(backgroundColor<\/decl.var.parameter.argument_label>: UIColor<\/ref.class><\/decl.var.parameter.type> = Self.defaultBackgroundColor<\/decl.var.parameter>, showsScrollIndicators<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 336,
@@ -187,14 +187,14 @@
             "key.doc.column" : 23,
             "key.doc.comment" : "The default background color for the `Appearance`.",
             "key.doc.declaration" : "public static var defaultBackgroundColor: UIColor { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
-            "key.doc.full_as_xml" : "defaultBackgroundColor<\/Name>s:10ListableUI10AppearanceV22defaultBackgroundColorSo7UIColorCvpZ<\/USR>public static var defaultBackgroundColor: UIColor { get }<\/Declaration>The default background color for the Appearance<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
+            "key.doc.full_as_xml" : "defaultBackgroundColor<\/Name>s:10ListableUI10AppearanceV22defaultBackgroundColorSo7UIColorCvpZ<\/USR>public static var defaultBackgroundColor: UIColor { get }<\/Declaration>The default background color for the Appearance<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 37,
             "key.doc.name" : "defaultBackgroundColor",
             "key.doc.type" : "Other",
             "key.doclength" : 55,
             "key.docoffset" : 992,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Appearance.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Appearance.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultBackgroundColor<\/decl.name>: UIColor<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 470,
@@ -217,7 +217,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ApplyReason.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ApplyReason.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 859,
     "key.offset" : 0,
@@ -237,8 +237,8 @@
         "key.doc.column" : 13,
         "key.doc.comment" : "Why the `Item` or `HeaderFooter` is being asked to apply an update to its presented views.",
         "key.doc.declaration" : "public enum ApplyReason : Hashable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ApplyReason.swift",
-        "key.doc.full_as_xml" : "ApplyReason<\/Name>s:10ListableUI11ApplyReasonO<\/USR>public enum ApplyReason : Hashable<\/Declaration>Why the Item<\/codeVoice> or HeaderFooter<\/codeVoice> is being asked to apply an update to its presented views.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ApplyReason.swift",
+        "key.doc.full_as_xml" : "ApplyReason<\/Name>s:10ListableUI11ApplyReasonO<\/USR>public enum ApplyReason : Hashable<\/Declaration>Why the Item<\/codeVoice> or HeaderFooter<\/codeVoice> is being asked to apply an update to its presented views.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 10,
         "key.doc.name" : "ApplyReason",
         "key.doc.type" : "Other",
@@ -251,7 +251,7 @@
             "key.offset" : 211
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ApplyReason.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ApplyReason.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ApplyReason<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>",
         "key.inheritedtypes" : [
           {
@@ -281,14 +281,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The view is about to be displayed on screen. Update should be performed with no animation.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ApplyReason.swift",
-                "key.doc.full_as_xml" : "willDisplay<\/Name>s:10ListableUI11ApplyReasonO11willDisplayyA2CmF<\/USR><\/Declaration>The view is about to be displayed on screen. Update should be performed with no animation.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ApplyReason.swift",
+                "key.doc.full_as_xml" : "willDisplay<\/Name>s:10ListableUI11ApplyReasonO11willDisplayyA2CmF<\/USR><\/Declaration>The view is about to be displayed on screen. Update should be performed with no animation.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 13,
                 "key.doc.name" : "willDisplay",
                 "key.doc.type" : "Other",
                 "key.doclength" : 95,
                 "key.docoffset" : 226,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ApplyReason.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ApplyReason.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> willDisplay<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 11,
@@ -318,14 +318,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "A view that is already visible is being updated.\nIf your updates can contain animated transitions, you should animate this update.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ApplyReason.swift",
-                "key.doc.full_as_xml" : "wasUpdated<\/Name>s:10ListableUI11ApplyReasonO10wasUpdatedyA2CmF<\/USR><\/Declaration>A view that is already visible is being updated. If your updates can contain animated transitions, you should animate this update.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ApplyReason.swift",
+                "key.doc.full_as_xml" : "wasUpdated<\/Name>s:10ListableUI11ApplyReasonO10wasUpdatedyA2CmF<\/USR><\/Declaration>A view that is already visible is being updated. If your updates can contain animated transitions, you should animate this update.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 17,
                 "key.doc.name" : "wasUpdated",
                 "key.doc.type" : "Other",
                 "key.doclength" : 143,
                 "key.docoffset" : 351,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ApplyReason.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ApplyReason.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> wasUpdated<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 10,
@@ -357,14 +357,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "If you should use animations while applying the update.\nCheck this boolean in your `apply` method to avoid\nhaving to `switch` over the value of `ApplyReason`.",
             "key.doc.declaration" : "public var shouldAnimate: Bool { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ApplyReason.swift",
-            "key.doc.full_as_xml" : "shouldAnimate<\/Name>s:10ListableUI11ApplyReasonO13shouldAnimateSbvp<\/USR>public var shouldAnimate: Bool { get }<\/Declaration>If you should use animations while applying the update. Check this boolean in your apply<\/codeVoice> method to avoid having to switch<\/codeVoice> over the value of ApplyReason<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ApplyReason.swift",
+            "key.doc.full_as_xml" : "shouldAnimate<\/Name>s:10ListableUI11ApplyReasonO13shouldAnimateSbvp<\/USR>public var shouldAnimate: Bool { get }<\/Declaration>If you should use animations while applying the update. Check this boolean in your apply<\/codeVoice> method to avoid having to switch<\/codeVoice> over the value of ApplyReason<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 22,
             "key.doc.name" : "shouldAnimate",
             "key.doc.type" : "Other",
             "key.doclength" : 179,
             "key.docoffset" : 523,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ApplyReason.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ApplyReason.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> shouldAnimate<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 142,
@@ -387,7 +387,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 4943,
     "key.offset" : 0,
@@ -407,14 +407,14 @@
         "key.doc.column" : 13,
         "key.doc.comment" : "Options for auto-scrolling to items when the list is updated.",
         "key.doc.declaration" : "public enum AutoScrollAction",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-        "key.doc.full_as_xml" : "AutoScrollAction<\/Name>s:10ListableUI16AutoScrollActionO<\/USR>public enum AutoScrollAction<\/Declaration>Options for auto-scrolling to items when the list is updated.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+        "key.doc.full_as_xml" : "AutoScrollAction<\/Name>s:10ListableUI16AutoScrollActionO<\/USR>public enum AutoScrollAction<\/Declaration>Options for auto-scrolling to items when the list is updated.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 12,
         "key.doc.name" : "AutoScrollAction",
         "key.doc.type" : "Other",
         "key.doclength" : 66,
         "key.docoffset" : 112,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> AutoScrollAction<\/decl.name><\/decl.enum>",
         "key.kind" : "source.lang.swift.decl.enum",
         "key.length" : 2925,
@@ -439,14 +439,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The list never automatically scrolls.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI16AutoScrollActionO4noneyA2CmF<\/USR><\/Declaration>The list never automatically scrolls.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI16AutoScrollActionO4noneyA2CmF<\/USR><\/Declaration>The list never automatically scrolls.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 15,
                 "key.doc.name" : "none",
                 "key.doc.type" : "Other",
                 "key.doclength" : 42,
                 "key.docoffset" : 218,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 4,
@@ -476,14 +476,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "Scrolls to the specified item when the list is updated if the item was inserted in this update.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                "key.doc.full_as_xml" : "scrollToItem(onInsertOf:)<\/Name>s:10ListableUI16AutoScrollActionO12scrollToItemyA2C010OnInsertedH0V_tcACmF<\/USR><\/Declaration>Scrolls to the specified item when the list is updated if the item was inserted in this update.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.doc.full_as_xml" : "scrollToItem(onInsertOf:)<\/Name>s:10ListableUI16AutoScrollActionO12scrollToItemyA2C010OnInsertedH0V_tcACmF<\/USR><\/Declaration>Scrolls to the specified item when the list is updated if the item was inserted in this update.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 18,
                 "key.doc.name" : "scrollToItem(onInsertOf:)",
                 "key.doc.type" : "Other",
                 "key.doclength" : 100,
                 "key.docoffset" : 279,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrollToItem<\/decl.name>(onInsertOf<\/decl.var.parameter.argument_label>: OnInsertedItem<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 40,
@@ -529,14 +529,14 @@
                 "List-Bullet" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-            "key.doc.full_as_xml" : "scrollTo(_:onInsertOf:position:animation:shouldPerform:didPerform:)<\/Name>s:10ListableUI16AutoScrollActionO8scrollTo_10onInsertOf8position9animation13shouldPerform03didN0A2C0D11DestinationOSg_AA13AnyIdentifierCAA0D8PositionVAA0D9AnimationOSbAA04ListdS4InfoVcyATctFZ<\/USR>public static func scrollTo(_ destination: ScrollDestination? = nil, onInsertOf insertedIdentifier: AnyIdentifier, position: ScrollPosition, animation: ScrollAnimation = .none, shouldPerform: @escaping (ListScrollPositionInfo) -> Bool = { _ in true }, didPerform: @escaping (ListScrollPositionInfo) -> () = { _ in }) -> AutoScrollAction<\/Declaration>Scrolls to the specified item when the list is updated if the item was inserted in this update.<\/Para><\/Abstract>If you would like to control if this scroll should occur on insert, pass a shouldPerform<\/codeVoice> closure, which will be called when the item is inserted, to give you a chance to confirm or reject the scroll action. The ListScrollPositionInfo<\/codeVoice> passed to your closure provides the current state of the list, including visible content edges and visible items. If you do not pass a shouldPerform<\/codeVoice> closure, the action will be performed on insert.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Parameters<\/Para>destination: Where the list should scroll to on insert. If not specified, the value passed to onInsertOf<\/codeVoice> will be used.<\/Para><\/Item>onInsertOf: The identifier which should trigger the action.<\/Para><\/Item>position: The position to scroll the list to.<\/Para><\/Item>animation: The animation type to perform. Note: Will only animate if the list update itself is animated.<\/Para><\/Item>shouldPerform: A block which lets you control if the auto scroll action should be performed based on the state of the list.<\/Para><\/Item>didPerform: A block which is called when the action is performed. If the item causing insertion is inserted multiple times, this block will be called multiple times.<\/Para><\/Item><\/List-Bullet><\/Item><\/List-Bullet><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+            "key.doc.full_as_xml" : "scrollTo(_:onInsertOf:position:animation:shouldPerform:didPerform:)<\/Name>s:10ListableUI16AutoScrollActionO8scrollTo_10onInsertOf8position9animation13shouldPerform03didN0A2C0D11DestinationOSg_AA13AnyIdentifierCAA0D8PositionVAA0D9AnimationOSbAA04ListdS4InfoVcyATctFZ<\/USR>public static func scrollTo(_ destination: ScrollDestination? = nil, onInsertOf insertedIdentifier: AnyIdentifier, position: ScrollPosition, animation: ScrollAnimation = .none, shouldPerform: @escaping (ListScrollPositionInfo) -> Bool = { _ in true }, didPerform: @escaping (ListScrollPositionInfo) -> () = { _ in }) -> AutoScrollAction<\/Declaration>Scrolls to the specified item when the list is updated if the item was inserted in this update.<\/Para><\/Abstract>If you would like to control if this scroll should occur on insert, pass a shouldPerform<\/codeVoice> closure, which will be called when the item is inserted, to give you a chance to confirm or reject the scroll action. The ListScrollPositionInfo<\/codeVoice> passed to your closure provides the current state of the list, including visible content edges and visible items. If you do not pass a shouldPerform<\/codeVoice> closure, the action will be performed on insert.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Parameters<\/Para>destination: Where the list should scroll to on insert. If not specified, the value passed to onInsertOf<\/codeVoice> will be used.<\/Para><\/Item>onInsertOf: The identifier which should trigger the action.<\/Para><\/Item>position: The position to scroll the list to.<\/Para><\/Item>animation: The animation type to perform. Note: Will only animate if the list update itself is animated.<\/Para><\/Item>shouldPerform: A block which lets you control if the auto scroll action should be performed based on the state of the list.<\/Para><\/Item>didPerform: A block which is called when the action is performed. If the item causing insertion is inserted multiple times, this block will be called multiple times.<\/Para><\/Item><\/List-Bullet><\/Item><\/List-Bullet><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 55,
             "key.doc.name" : "scrollTo(_:onInsertOf:position:animation:shouldPerform:didPerform:)",
             "key.doc.type" : "Function",
             "key.doclength" : 1951,
             "key.docoffset" : 434,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(_<\/decl.var.parameter.argument_label> destination<\/decl.var.parameter.name>: ScrollDestination<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onInsertOf<\/decl.var.parameter.argument_label> insertedIdentifier<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animation<\/decl.var.parameter.argument_label>: ScrollAnimation<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, shouldPerform<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in true }<\/decl.var.parameter>, didPerform<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> AutoScrollAction<\/ref.enum><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 712,
@@ -565,12 +565,12 @@
         "key.bodyoffset" : 3141,
         "key.doc.column" : 13,
         "key.doc.declaration" : "public enum AutoScrollAction",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-        "key.doc.full_as_xml" : "AutoScrollAction<\/Name>s:10ListableUI16AutoScrollActionO<\/USR>public enum AutoScrollAction<\/Declaration>Options for auto-scrolling to items when the list is updated.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+        "key.doc.full_as_xml" : "AutoScrollAction<\/Name>s:10ListableUI16AutoScrollActionO<\/USR>public enum AutoScrollAction<\/Declaration>Options for auto-scrolling to items when the list is updated.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 12,
         "key.doc.name" : "AutoScrollAction",
         "key.doc.type" : "Other",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> AutoScrollAction<\/decl.name><\/decl.enum>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1829,
@@ -597,8 +597,8 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Where to scroll as a result of an `AutoScrollAction`.",
             "key.doc.declaration" : "public enum ScrollDestination : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-            "key.doc.full_as_xml" : "ScrollDestination<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO<\/USR>public enum ScrollDestination : Equatable<\/Declaration>Where to scroll as a result of an AutoScrollAction<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+            "key.doc.full_as_xml" : "ScrollDestination<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO<\/USR>public enum ScrollDestination : Equatable<\/Declaration>Where to scroll as a result of an AutoScrollAction<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 79,
             "key.doc.name" : "ScrollDestination",
             "key.doc.type" : "Other",
@@ -611,7 +611,7 @@
                 "key.offset" : 3240
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ScrollDestination<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -641,14 +641,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "Scroll to the first item in the list.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                    "key.doc.full_as_xml" : "firstItem<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO9firstItemyA2EmF<\/USR><\/Declaration>Scroll to the first item in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                    "key.doc.full_as_xml" : "firstItem<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO9firstItemyA2EmF<\/USR><\/Declaration>Scroll to the first item in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 82,
                     "key.doc.name" : "firstItem",
                     "key.doc.type" : "Other",
                     "key.doclength" : 42,
                     "key.docoffset" : 3264,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> firstItem<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 9,
@@ -678,14 +678,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "Scroll to the last item in the list.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                    "key.doc.full_as_xml" : "lastItem<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO8lastItemyA2EmF<\/USR><\/Declaration>Scroll to the last item in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                    "key.doc.full_as_xml" : "lastItem<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO8lastItemyA2EmF<\/USR><\/Declaration>Scroll to the last item in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 85,
                     "key.doc.name" : "lastItem",
                     "key.doc.type" : "Other",
                     "key.doclength" : 41,
                     "key.docoffset" : 3346,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> lastItem<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 8,
@@ -715,14 +715,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "Scroll to the item with the specified identifier.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                    "key.doc.full_as_xml" : "item(_:)<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO4itemyAeA13AnyIdentifierCcAEmF<\/USR><\/Declaration>Scroll to the item with the specified identifier.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                    "key.doc.full_as_xml" : "item(_:)<\/Name>s:10ListableUI16AutoScrollActionO0D11DestinationO4itemyAeA13AnyIdentifierCcAEmF<\/USR><\/Declaration>Scroll to the item with the specified identifier.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 88,
                     "key.doc.name" : "item(_:)",
                     "key.doc.type" : "Other",
                     "key.doclength" : 54,
                     "key.docoffset" : 3426,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> item<\/decl.name>(AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 19,
@@ -747,7 +747,7 @@
                 "key.annotated_decl" : "func destination(with content: Content<\/Type>) -> AnyIdentifier<\/Type>?<\/Declaration>",
                 "key.bodylength" : 237,
                 "key.bodyoffset" : 3590,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> destination<\/decl.name>(with<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyIdentifier<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 298,
@@ -785,14 +785,14 @@
             "key.doc.column" : 19,
             "key.doc.comment" : "Values used to configure the `scrollToItem(onInsertOf:)` action.",
             "key.doc.declaration" : "public struct OnInsertedItem",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-            "key.doc.full_as_xml" : "OnInsertedItem<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV<\/USR>public struct OnInsertedItem<\/Declaration>Values used to configure the scrollToItem(onInsertOf:)<\/codeVoice> action.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+            "key.doc.full_as_xml" : "OnInsertedItem<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV<\/USR>public struct OnInsertedItem<\/Declaration>Values used to configure the scrollToItem(onInsertOf:)<\/codeVoice> action.<\/Para><\/Abstract><\/CommentParts><\/Class>",
             "key.doc.line" : 101,
             "key.doc.name" : "OnInsertedItem",
             "key.doc.type" : "Class",
             "key.doclength" : 69,
             "key.docoffset" : 3849,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> OnInsertedItem<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 1011,
@@ -817,14 +817,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "The item in the list to scroll to when the `insertedIdentifier` is inserted.",
                 "key.doc.declaration" : "public var destination: ScrollDestination",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                "key.doc.full_as_xml" : "destination<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV11destinationAC0D11DestinationOvp<\/USR>public var destination: ScrollDestination<\/Declaration>The item in the list to scroll to when the insertedIdentifier<\/codeVoice> is inserted.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.doc.full_as_xml" : "destination<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV11destinationAC0D11DestinationOvp<\/USR>public var destination: ScrollDestination<\/Declaration>The item in the list to scroll to when the insertedIdentifier<\/codeVoice> is inserted.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 104,
                 "key.doc.name" : "destination",
                 "key.doc.type" : "Other",
                 "key.doclength" : 81,
                 "key.docoffset" : 3965,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> destination<\/decl.name>: ScrollDestination<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 35,
@@ -853,14 +853,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "The identifier of the item for which the `AutoScrollAction` should be performed.",
                 "key.doc.declaration" : "public var insertedIdentifier: AnyIdentifier",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                "key.doc.full_as_xml" : "insertedIdentifier<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV18insertedIdentifierAA03AnyJ0Cvp<\/USR>public var insertedIdentifier: AnyIdentifier<\/Declaration>The identifier of the item for which the AutoScrollAction<\/codeVoice> should be performed.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.doc.full_as_xml" : "insertedIdentifier<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV18insertedIdentifierAA03AnyJ0Cvp<\/USR>public var insertedIdentifier: AnyIdentifier<\/Declaration>The identifier of the item for which the AutoScrollAction<\/codeVoice> should be performed.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 107,
                 "key.doc.name" : "insertedIdentifier",
                 "key.doc.type" : "Other",
                 "key.doclength" : 85,
                 "key.docoffset" : 4114,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> insertedIdentifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 38,
@@ -889,14 +889,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "The desired scroll position,",
                 "key.doc.declaration" : "public var position: ScrollPosition",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV8positionAA0D8PositionVvp<\/USR>public var position: ScrollPosition<\/Declaration>The desired scroll position,<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV8positionAA0D8PositionVvp<\/USR>public var position: ScrollPosition<\/Declaration>The desired scroll position,<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 110,
                 "key.doc.name" : "position",
                 "key.doc.type" : "Other",
                 "key.doclength" : 33,
                 "key.docoffset" : 4270,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> position<\/decl.name>: ScrollPosition<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 29,
@@ -930,14 +930,14 @@
                     "Para" : "The action will only be animated if it is animated,  the list update itself is animated. Otherwise, no animation occurs."
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                "key.doc.full_as_xml" : "animation<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV9animationAA0D9AnimationOvp<\/USR>public var animation: ScrollAnimation<\/Declaration>How to animate the change.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The action will only be animated if it is animated, and<\/bold> the list update itself is animated. Otherwise, no animation occurs.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.doc.full_as_xml" : "animation<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV9animationAA0D9AnimationOvp<\/USR>public var animation: ScrollAnimation<\/Declaration>How to animate the change.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>The action will only be animated if it is animated, and<\/bold> the list update itself is animated. Otherwise, no animation occurs.<\/Para><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 118,
                 "key.doc.name" : "animation",
                 "key.doc.type" : "Other",
                 "key.doclength" : 229,
                 "key.docoffset" : 4365,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> animation<\/decl.name>: ScrollAnimation<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 31,
@@ -966,14 +966,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "An additional check you may provide to approve or reject the scroll action.",
                 "key.doc.declaration" : "public var shouldPerform: (ListScrollPositionInfo) -> Bool",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                "key.doc.full_as_xml" : "shouldPerform<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV13shouldPerformySbAA04ListD12PositionInfoVcvp<\/USR>public var shouldPerform: (ListScrollPositionInfo) -> Bool<\/Declaration>An additional check you may provide to approve or reject the scroll action.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.doc.full_as_xml" : "shouldPerform<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV13shouldPerformySbAA04ListD12PositionInfoVcvp<\/USR>public var shouldPerform: (ListScrollPositionInfo) -> Bool<\/Declaration>An additional check you may provide to approve or reject the scroll action.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 121,
                 "key.doc.name" : "shouldPerform",
                 "key.doc.type" : "Other",
                 "key.doclength" : 80,
                 "key.docoffset" : 4658,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> shouldPerform<\/decl.name>: (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 52,
@@ -1002,14 +1002,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "Called when the list performs the insertion.",
                 "key.doc.declaration" : "public var didPerform: (ListScrollPositionInfo) -> ()",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
-                "key.doc.full_as_xml" : "didPerform<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV10didPerformyyAA04ListD12PositionInfoVcvp<\/USR>public var didPerform: (ListScrollPositionInfo) -> ()<\/Declaration>Called when the list performs the insertion.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.doc.full_as_xml" : "didPerform<\/Name>s:10ListableUI16AutoScrollActionO14OnInsertedItemV10didPerformyyAA04ListD12PositionInfoVcvp<\/USR>public var didPerform: (ListScrollPositionInfo) -> ()<\/Declaration>Called when the list performs the insertion.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 124,
                 "key.doc.name" : "didPerform",
                 "key.doc.type" : "Other",
                 "key.doclength" : 49,
                 "key.docoffset" : 4823,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/AutoScrollAction.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/AutoScrollAction.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didPerform<\/decl.name>: (ListScrollPositionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 47,
@@ -1038,7 +1038,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 5711,
     "key.offset" : 0,
@@ -1058,8 +1058,8 @@
         "key.doc.column" : 15,
         "key.doc.comment" : "Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior\nwhen the list content underflows the available space in the list view.",
         "key.doc.declaration" : "public struct Behavior : Equatable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-        "key.doc.full_as_xml" : "Behavior<\/Name>s:10ListableUI8BehaviorV<\/USR>public struct Behavior : Equatable<\/Declaration>Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior when the list content underflows the available space in the list view.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+        "key.doc.full_as_xml" : "Behavior<\/Name>s:10ListableUI8BehaviorV<\/USR>public struct Behavior : Equatable<\/Declaration>Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior when the list content underflows the available space in the list view.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 13,
         "key.doc.name" : "Behavior",
         "key.doc.type" : "Class",
@@ -1072,7 +1072,7 @@
             "key.offset" : 313
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Behavior<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -1102,14 +1102,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "How the keyboard should be dismissed (if at all) based on scrolling of the list view.",
             "key.doc.declaration" : "public var keyboardDismissMode: UIScrollView.KeyboardDismissMode",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "keyboardDismissMode<\/Name>s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp<\/USR>public var keyboardDismissMode: UIScrollView.KeyboardDismissMode<\/Declaration>How the keyboard should be dismissed (if at all) based on scrolling of the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "keyboardDismissMode<\/Name>s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp<\/USR>public var keyboardDismissMode: UIScrollView.KeyboardDismissMode<\/Declaration>How the keyboard should be dismissed (if at all) based on scrolling of the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 16,
             "key.doc.name" : "keyboardDismissMode",
             "key.doc.type" : "Other",
             "key.doclength" : 90,
             "key.docoffset" : 329,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> keyboardDismissMode<\/decl.name>: UIScrollView<\/ref.class>.KeyboardDismissMode<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 58,
@@ -1138,14 +1138,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "How to adjust the `contentInset` of the list when the keyboard visibility changes.",
             "key.doc.declaration" : "public var keyboardAdjustmentMode: KeyboardAdjustmentMode",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "keyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp<\/USR>public var keyboardAdjustmentMode: KeyboardAdjustmentMode<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "keyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp<\/USR>public var keyboardAdjustmentMode: KeyboardAdjustmentMode<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 19,
             "key.doc.name" : "keyboardAdjustmentMode",
             "key.doc.type" : "Other",
             "key.doclength" : 87,
             "key.docoffset" : 498,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> keyboardAdjustmentMode<\/decl.name>: KeyboardAdjustmentMode<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 51,
@@ -1174,14 +1174,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "How the list should react when the user taps the application status bar.\nThe default value of this enables scrolling to top.",
             "key.doc.declaration" : "public var scrollsToTop: ScrollsToTop",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "scrollsToTop<\/Name>s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp<\/USR>public var scrollsToTop: ScrollsToTop<\/Declaration>How the list should react when the user taps the application status bar. The default value of this enables scrolling to top.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "scrollsToTop<\/Name>s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp<\/USR>public var scrollsToTop: ScrollsToTop<\/Declaration>How the list should react when the user taps the application status bar. The default value of this enables scrolling to top.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 23,
             "key.doc.name" : "scrollsToTop",
             "key.doc.type" : "Other",
             "key.doclength" : 137,
             "key.docoffset" : 657,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollsToTop<\/decl.name>: ScrollsToTop<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -1210,14 +1210,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "How the list should respond to selection attempts.",
             "key.doc.declaration" : "public var selectionMode: SelectionMode",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "selectionMode<\/Name>s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp<\/USR>public var selectionMode: SelectionMode<\/Declaration>How the list should respond to selection attempts.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "selectionMode<\/Name>s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp<\/USR>public var selectionMode: SelectionMode<\/Declaration>How the list should respond to selection attempts.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 26,
             "key.doc.name" : "selectionMode",
             "key.doc.type" : "Other",
             "key.doclength" : 55,
             "key.docoffset" : 846,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectionMode<\/decl.name>: SelectionMode<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -1246,14 +1246,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "How the list should behave when its content takes up less space than is available in the list view.\nTODO: This should move to individual layout types.",
             "key.doc.declaration" : "public var underflow: Underflow",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "underflow<\/Name>s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp<\/USR>public var underflow: Underflow<\/Declaration>How the list should behave when its content takes up less space than is available in the list view. TODO: This should move to individual layout types.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "underflow<\/Name>s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp<\/USR>public var underflow: Underflow<\/Declaration>How the list should behave when its content takes up less space than is available in the list view. TODO: This should move to individual layout types.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 30,
             "key.doc.name" : "underflow",
             "key.doc.type" : "Other",
             "key.doclength" : 163,
             "key.docoffset" : 959,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> underflow<\/decl.name>: Underflow<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 25,
@@ -1282,14 +1282,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "A Boolean value that controls whether touches in the content view always lead to tracking.",
             "key.doc.declaration" : "public var canCancelContentTouches: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "canCancelContentTouches<\/Name>s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp<\/USR>public var canCancelContentTouches: Bool<\/Declaration>A Boolean value that controls whether touches in the content view always lead to tracking.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "canCancelContentTouches<\/Name>s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp<\/USR>public var canCancelContentTouches: Bool<\/Declaration>A Boolean value that controls whether touches in the content view always lead to tracking.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 33,
             "key.doc.name" : "canCancelContentTouches",
             "key.doc.type" : "Other",
             "key.doclength" : 95,
             "key.docoffset" : 1168,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> canCancelContentTouches<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 34,
@@ -1318,14 +1318,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.",
             "key.doc.declaration" : "public var delaysContentTouches: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "delaysContentTouches<\/Name>s:10ListableUI8BehaviorV20delaysContentTouchesSbvp<\/USR>public var delaysContentTouches: Bool<\/Declaration>A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "delaysContentTouches<\/Name>s:10ListableUI8BehaviorV20delaysContentTouchesSbvp<\/USR>public var delaysContentTouches: Bool<\/Declaration>A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 36,
             "key.doc.name" : "delaysContentTouches",
             "key.doc.type" : "Other",
             "key.doclength" : 104,
             "key.docoffset" : 1318,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> delaysContentTouches<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -1354,14 +1354,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "Is paging enabled on the underlying scroll view.",
             "key.doc.declaration" : "public var isPagingEnabled: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "isPagingEnabled<\/Name>s:10ListableUI8BehaviorV15isPagingEnabledSbvp<\/USR>public var isPagingEnabled: Bool<\/Declaration>Is paging enabled on the underlying scroll view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "isPagingEnabled<\/Name>s:10ListableUI8BehaviorV15isPagingEnabledSbvp<\/USR>public var isPagingEnabled: Bool<\/Declaration>Is paging enabled on the underlying scroll view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 39,
             "key.doc.name" : "isPagingEnabled",
             "key.doc.type" : "Other",
             "key.doclength" : 53,
             "key.docoffset" : 1474,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isPagingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 26,
@@ -1392,14 +1392,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a new `Behavior` based on the provided parameters.",
             "key.doc.declaration" : "public init(keyboardDismissMode: UIScrollView.KeyboardDismissMode = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode = .adjustsWhenVisible, scrollsToTop: ScrollsToTop = .enabled, selectionMode: SelectionMode = .single(), underflow: Underflow = Underflow(), canCancelContentTouches: Bool = true, delaysContentTouches: Bool = true, isPagingEnabled: Bool = false)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:)<\/Name>s:10ListableUI8BehaviorV19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP015isPagingEnabledACSo020UIScrollViewKeyboardeF0V_AC0wgF0OAC07ScrollsiJ0OAC09SelectionF0OAC9UnderflowVS3btcfc<\/USR>public init(keyboardDismissMode: UIScrollView.KeyboardDismissMode = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode = .adjustsWhenVisible, scrollsToTop: ScrollsToTop = .enabled, selectionMode: SelectionMode = .single(), underflow: Underflow = Underflow(), canCancelContentTouches: Bool = true, delaysContentTouches: Bool = true, isPagingEnabled: Bool = false)<\/Declaration>Creates a new Behavior<\/codeVoice> based on the provided parameters.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:)<\/Name>s:10ListableUI8BehaviorV19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP015isPagingEnabledACSo020UIScrollViewKeyboardeF0V_AC0wgF0OAC07ScrollsiJ0OAC09SelectionF0OAC9UnderflowVS3btcfc<\/USR>public init(keyboardDismissMode: UIScrollView.KeyboardDismissMode = .interactive, keyboardAdjustmentMode: KeyboardAdjustmentMode = .adjustsWhenVisible, scrollsToTop: ScrollsToTop = .enabled, selectionMode: SelectionMode = .single(), underflow: Underflow = Underflow(), canCancelContentTouches: Bool = true, delaysContentTouches: Bool = true, isPagingEnabled: Bool = false)<\/Declaration>Creates a new Behavior<\/codeVoice> based on the provided parameters.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 42,
             "key.doc.name" : "init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:)",
             "key.doc.type" : "Function",
             "key.doclength" : 63,
             "key.docoffset" : 1574,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(keyboardDismissMode<\/decl.var.parameter.argument_label>: UIScrollView<\/ref.class>.KeyboardDismissMode<\/ref.enum><\/decl.var.parameter.type> = .interactive<\/decl.var.parameter>, keyboardAdjustmentMode<\/decl.var.parameter.argument_label>: KeyboardAdjustmentMode<\/ref.enum><\/decl.var.parameter.type> = .adjustsWhenVisible<\/decl.var.parameter>, scrollsToTop<\/decl.var.parameter.argument_label>: ScrollsToTop<\/ref.enum><\/decl.var.parameter.type> = .enabled<\/decl.var.parameter>, selectionMode<\/decl.var.parameter.argument_label>: SelectionMode<\/ref.enum><\/decl.var.parameter.type> = .single()<\/decl.var.parameter>, underflow<\/decl.var.parameter.argument_label>: Underflow<\/ref.struct><\/decl.var.parameter.type> = Underflow()<\/decl.var.parameter>, canCancelContentTouches<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, delaysContentTouches<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, isPagingEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 870,
@@ -1428,12 +1428,12 @@
         "key.bodyoffset" : 2543,
         "key.doc.column" : 15,
         "key.doc.declaration" : "public struct Behavior : Equatable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-        "key.doc.full_as_xml" : "Behavior<\/Name>s:10ListableUI8BehaviorV<\/USR>public struct Behavior : Equatable<\/Declaration>Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior when the list content underflows the available space in the list view.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+        "key.doc.full_as_xml" : "Behavior<\/Name>s:10ListableUI8BehaviorV<\/USR>public struct Behavior : Equatable<\/Declaration>Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior when the list content underflows the available space in the list view.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 13,
         "key.doc.name" : "Behavior",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Behavior<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 3187,
@@ -1460,8 +1460,8 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "How to adjust the `contentInset` of the list when the keyboard visibility changes.",
             "key.doc.declaration" : "public enum KeyboardAdjustmentMode : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "KeyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO<\/USR>public enum KeyboardAdjustmentMode : Equatable<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "KeyboardAdjustmentMode<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO<\/USR>public enum KeyboardAdjustmentMode : Equatable<\/Declaration>How to adjust the contentInset<\/codeVoice> of the list when the keyboard visibility changes.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 70,
             "key.doc.name" : "KeyboardAdjustmentMode",
             "key.doc.type" : "Other",
@@ -1474,7 +1474,7 @@
                 "key.offset" : 2676
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> KeyboardAdjustmentMode<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -1504,14 +1504,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "The `contentInset` of the list is not adjusted when the keyboard appears or disappears.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-                    "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is not adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+                    "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is not adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 73,
                     "key.doc.name" : "none",
                     "key.doc.type" : "Other",
                     "key.doclength" : 92,
                     "key.docoffset" : 2700,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 4,
@@ -1541,14 +1541,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "The `contentInset` of the list is adjusted when the keyboard appears or disappears.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-                    "key.doc.full_as_xml" : "adjustsWhenVisible<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+                    "key.doc.full_as_xml" : "adjustsWhenVisible<\/Name>s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF<\/USR><\/Declaration>The contentInset<\/codeVoice> of the list is adjusted when the keyboard appears or disappears.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 76,
                     "key.doc.name" : "adjustsWhenVisible",
                     "key.doc.type" : "Other",
                     "key.doclength" : 88,
                     "key.docoffset" : 2827,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> adjustsWhenVisible<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 18,
@@ -1585,8 +1585,8 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "How to react when the user taps on the status bar of the application.",
             "key.doc.declaration" : "public enum ScrollsToTop : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "ScrollsToTop<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO<\/USR>public enum ScrollsToTop : Equatable<\/Declaration>How to react when the user taps on the status bar of the application.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "ScrollsToTop<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO<\/USR>public enum ScrollsToTop : Equatable<\/Declaration>How to react when the user taps on the status bar of the application.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 81,
             "key.doc.name" : "ScrollsToTop",
             "key.doc.type" : "Other",
@@ -1599,7 +1599,7 @@
                 "key.offset" : 3072
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ScrollsToTop<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -1629,14 +1629,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "No action is performed when the user taps on the status bar.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-                    "key.doc.full_as_xml" : "disabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF<\/USR><\/Declaration>No action is performed when the user taps on the status bar.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+                    "key.doc.full_as_xml" : "disabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF<\/USR><\/Declaration>No action is performed when the user taps on the status bar.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 84,
                     "key.doc.name" : "disabled",
                     "key.doc.type" : "Other",
                     "key.doclength" : 65,
                     "key.docoffset" : 3096,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> disabled<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 8,
@@ -1666,14 +1666,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "When the user taps on the status bar, scroll to the top of the list.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-                    "key.doc.full_as_xml" : "enabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF<\/USR><\/Declaration>When the user taps on the status bar, scroll to the top of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+                    "key.doc.full_as_xml" : "enabled<\/Name>s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF<\/USR><\/Declaration>When the user taps on the status bar, scroll to the top of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 87,
                     "key.doc.name" : "enabled",
                     "key.doc.type" : "Other",
                     "key.doclength" : 73,
                     "key.docoffset" : 3200,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> enabled<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 7,
@@ -1710,8 +1710,8 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "The selection mode of the list view, which controls how many items (if any) can be selected at once.",
             "key.doc.declaration" : "public enum SelectionMode : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-            "key.doc.full_as_xml" : "SelectionMode<\/Name>s:10ListableUI8BehaviorV13SelectionModeO<\/USR>public enum SelectionMode : Equatable<\/Declaration>The selection mode of the list view, which controls how many items (if any) can be selected at once.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+            "key.doc.full_as_xml" : "SelectionMode<\/Name>s:10ListableUI8BehaviorV13SelectionModeO<\/USR>public enum SelectionMode : Equatable<\/Declaration>The selection mode of the list view, which controls how many items (if any) can be selected at once.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 92,
             "key.doc.name" : "SelectionMode",
             "key.doc.type" : "Other",
@@ -1724,7 +1724,7 @@
                 "key.offset" : 3451
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SelectionMode<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -1754,14 +1754,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "The list view does not allow any selections.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-                    "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF<\/USR><\/Declaration>The list view does not allow any selections.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+                    "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF<\/USR><\/Declaration>The list view does not allow any selections.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 95,
                     "key.doc.name" : "none",
                     "key.doc.type" : "Other",
                     "key.doclength" : 49,
                     "key.docoffset" : 3475,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 4,
@@ -1799,14 +1799,14 @@
                         "Para" : "This behaviour is implemented in `ListViewController`. If your list is not managed by a `ListViewController`, this parameter has no effect unless you manually call `clearSelectionDuringViewWillAppear` on `ListView` within your view controller’s `viewWillAppear`."
                       }
                     ],
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-                    "key.doc.full_as_xml" : "single(clearsSelectionOnViewWillAppear:)<\/Name>s:10ListableUI8BehaviorV13SelectionModeO6singleyAESb_tcAEmF<\/USR><\/Declaration>The list view allows single selections. When an item is selected, the previously selected item (if any) will be deselected by the list. If you provide multiple selected items in your content description, the last selected item in the content will be selected.<\/Para><\/Abstract>The default value for clearsSelectionOnViewWillAppear<\/codeVoice> is true. This parameter allows mirroring the clearsSelectionOnViewWillAppear<\/codeVoice> as available from UITableViewController<\/codeVoice> or UICollectionViewController<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This behaviour is implemented in ListViewController<\/codeVoice>. If your list is not managed by a ListViewController<\/codeVoice>, this parameter has no effect unless you manually call clearSelectionDuringViewWillAppear<\/codeVoice> on ListView<\/codeVoice> within your view controller’s viewWillAppear<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+                    "key.doc.full_as_xml" : "single(clearsSelectionOnViewWillAppear:)<\/Name>s:10ListableUI8BehaviorV13SelectionModeO6singleyAESb_tcAEmF<\/USR><\/Declaration>The list view allows single selections. When an item is selected, the previously selected item (if any) will be deselected by the list. If you provide multiple selected items in your content description, the last selected item in the content will be selected.<\/Para><\/Abstract>The default value for clearsSelectionOnViewWillAppear<\/codeVoice> is true. This parameter allows mirroring the clearsSelectionOnViewWillAppear<\/codeVoice> as available from UITableViewController<\/codeVoice> or UICollectionViewController<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This behaviour is implemented in ListViewController<\/codeVoice>. If your list is not managed by a ListViewController<\/codeVoice>, this parameter has no effect unless you manually call clearSelectionDuringViewWillAppear<\/codeVoice> on ListView<\/codeVoice> within your view controller’s viewWillAppear<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>",
                     "key.doc.line" : 111,
                     "key.doc.name" : "single(clearsSelectionOnViewWillAppear:)",
                     "key.doc.type" : "Other",
                     "key.doclength" : 903,
                     "key.docoffset" : 3559,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> single<\/decl.name>(clearsSelectionOnViewWillAppear<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 53,
@@ -1839,14 +1839,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "The list view allows multiple selections. It is your responsibility to update the content\nof the list to select and deselect items based on the selection of other items.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
-                    "key.doc.full_as_xml" : "multiple<\/Name>s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF<\/USR><\/Declaration>The list view allows multiple selections. It is your responsibility to update the content of the list to select and deselect items based on the selection of other items.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
+                    "key.doc.full_as_xml" : "multiple<\/Name>s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF<\/USR><\/Declaration>The list view allows multiple selections. It is your responsibility to update the content of the list to select and deselect items based on the selection of other items.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 115,
                     "key.doc.name" : "multiple",
                     "key.doc.type" : "Other",
                     "key.doclength" : 186,
                     "key.docoffset" : 4546,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> multiple<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 8,
@@ -1887,7 +1887,7 @@
                 "key.offset" : 4800
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Underflow<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -1914,7 +1914,7 @@
                     "key.offset" : 4824
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alwaysBounce<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 23,
@@ -1940,7 +1940,7 @@
                     "key.offset" : 4863
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alignment<\/decl.name>: Alignment<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
@@ -1968,7 +1968,7 @@
                 ],
                 "key.bodylength" : 93,
                 "key.bodyoffset" : 4992,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(alwaysBounce<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, alignment<\/decl.var.parameter.argument_label>: Alignment<\/ref.enum><\/decl.var.parameter.type> = .top<\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 166,
@@ -2005,7 +2005,7 @@
                     "key.offset" : 5128
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Behavior<\/ref.struct>.Underflow<\/ref.struct>.Alignment<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
                 "key.inheritedtypes" : [
                   {
@@ -2032,7 +2032,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.public",
                         "key.annotated_decl" : "case top<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> top<\/decl.name><\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 3,
@@ -2059,7 +2059,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.public",
                         "key.annotated_decl" : "case center<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> center<\/decl.name><\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 6,
@@ -2086,7 +2086,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.public",
                         "key.annotated_decl" : "case bottom<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> bottom<\/decl.name><\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 6,
@@ -2108,7 +2108,7 @@
                     "key.annotated_decl" : "func offsetFor(contentHeight: CGFloat<\/Type>, viewHeight: CGFloat<\/Type>) -> CGFloat<\/Type><\/Declaration>",
                     "key.bodylength" : 364,
                     "key.bodyoffset" : 5327,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Behavior.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Behavior.swift",
                     "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> offsetFor<\/decl.name>(contentHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, viewHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                     "key.kind" : "source.lang.swift.decl.function.method.instance",
                     "key.length" : 450,
@@ -2144,7 +2144,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Color.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Color.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 792,
     "key.offset" : 0,
@@ -2169,8 +2169,8 @@
         "key.doc.column" : 15,
         "key.doc.comment" : "A color wrapper which provides equatability for\ndynamic `UIColor` instances, by comparing their resolved\nvalue to the current `UITraitCollection`.",
         "key.doc.declaration" : "@propertyWrapper public struct Color : Equatable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Color.swift",
-        "key.doc.full_as_xml" : "Color<\/Name>s:10ListableUI5ColorV<\/USR>@propertyWrapper public struct Color : Equatable<\/Declaration>A color wrapper which provides equatability for dynamic UIColor<\/codeVoice> instances, by comparing their resolved value to the current UITraitCollection<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Color.swift",
+        "key.doc.full_as_xml" : "Color<\/Name>s:10ListableUI5ColorV<\/USR>@propertyWrapper public struct Color : Equatable<\/Declaration>A color wrapper which provides equatability for dynamic UIColor<\/codeVoice> instances, by comparing their resolved value to the current UITraitCollection<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 15,
         "key.doc.name" : "Color",
         "key.doc.type" : "Class",
@@ -2183,7 +2183,7 @@
             "key.offset" : 295
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Color.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Color.swift",
         "key.fully_annotated_decl" : "@propertyWrapper<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Color<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -2213,14 +2213,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The underlying color value.",
             "key.doc.declaration" : "public var wrappedValue: UIColor",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Color.swift",
-            "key.doc.full_as_xml" : "wrappedValue<\/Name>s:10ListableUI5ColorV12wrappedValueSo7UIColorCvp<\/USR>public var wrappedValue: UIColor<\/Declaration>The underlying color value.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Color.swift",
+            "key.doc.full_as_xml" : "wrappedValue<\/Name>s:10ListableUI5ColorV12wrappedValueSo7UIColorCvp<\/USR>public var wrappedValue: UIColor<\/Declaration>The underlying color value.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 18,
             "key.doc.name" : "wrappedValue",
             "key.doc.type" : "Other",
             "key.doclength" : 32,
             "key.docoffset" : 316,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Color.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Color.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> wrappedValue<\/decl.name>: UIColor<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 26,
@@ -2248,7 +2248,7 @@
             ],
             "key.bodylength" : 46,
             "key.bodyoffset" : 434,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Color.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Color.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> wrappedValue<\/decl.var.parameter.name>: UIColor<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 79,
@@ -2308,7 +2308,7 @@
               }
             ],
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Color.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Color.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 291,
@@ -2788,9 +2788,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 9988,
+    "key.length" : 10004,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -2803,12 +2803,12 @@
             "key.offset" : 87
           }
         ],
-        "key.bodylength" : 9408,
+        "key.bodylength" : 9424,
         "key.bodyoffset" : 110,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Content<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 9425,
+        "key.length" : 9441,
         "key.name" : "Content",
         "key.namelength" : 7,
         "key.nameoffset" : 101,
@@ -2838,14 +2838,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The identifier for the content, defaults to nil.\nYou don't need to set this value – but if you do, and change it to another value,\nthe list will reload without animation.",
             "key.doc.declaration" : "public var identifier: AnyHashable?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI7ContentV10identifiers11AnyHashableVSgvp<\/USR>public var identifier: AnyHashable?<\/Declaration>The identifier for the content, defaults to nil. You don’t need to set this value – but if you do, and change it to another value, the list will reload without animation.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI7ContentV10identifiers11AnyHashableVSgvp<\/USR>public var identifier: AnyHashable?<\/Declaration>The identifier for the content, defaults to nil. You don’t need to set this value – but if you do, and change it to another value, the list will reload without animation.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 19,
             "key.doc.name" : "identifier",
             "key.doc.type" : "Other",
             "key.doclength" : 193,
             "key.docoffset" : 160,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifier<\/decl.name>: AnyHashable<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
@@ -2874,14 +2874,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The refresh control, if any, associated with the list.",
             "key.doc.declaration" : "public var refreshControl: RefreshControl?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "refreshControl<\/Name>s:10ListableUI7ContentV14refreshControlAA07RefreshE0VSgvp<\/USR>public var refreshControl: RefreshControl?<\/Declaration>The refresh control, if any, associated with the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "refreshControl<\/Name>s:10ListableUI7ContentV14refreshControlAA07RefreshE0VSgvp<\/USR>public var refreshControl: RefreshControl?<\/Declaration>The refresh control, if any, associated with the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 22,
             "key.doc.name" : "refreshControl",
             "key.doc.type" : "Other",
             "key.doclength" : 59,
             "key.docoffset" : 399,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> refreshControl<\/decl.name>: RefreshControl<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 36,
@@ -2910,14 +2910,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The header for the list, usually displayed before all other content.",
             "key.doc.declaration" : "public var header: AnyHeaderFooter?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "header<\/Name>s:10ListableUI7ContentV6headerAA15AnyHeaderFooter_pSgvp<\/USR>public var header: AnyHeaderFooter?<\/Declaration>The header for the list, usually displayed before all other content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "header<\/Name>s:10ListableUI7ContentV6headerAA15AnyHeaderFooter_pSgvp<\/USR>public var header: AnyHeaderFooter?<\/Declaration>The header for the list, usually displayed before all other content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 25,
             "key.doc.name" : "header",
             "key.doc.type" : "Other",
             "key.doclength" : 73,
             "key.docoffset" : 515,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> header<\/decl.name>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
@@ -2946,14 +2946,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The footer for the list, usually displayed after all other content.",
             "key.doc.declaration" : "public var footer: AnyHeaderFooter?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "footer<\/Name>s:10ListableUI7ContentV6footerAA15AnyHeaderFooter_pSgvp<\/USR>public var footer: AnyHeaderFooter?<\/Declaration>The footer for the list, usually displayed after all other content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "footer<\/Name>s:10ListableUI7ContentV6footerAA15AnyHeaderFooter_pSgvp<\/USR>public var footer: AnyHeaderFooter?<\/Declaration>The footer for the list, usually displayed after all other content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 27,
             "key.doc.name" : "footer",
             "key.doc.type" : "Other",
             "key.doclength" : 72,
             "key.docoffset" : 633,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> footer<\/decl.name>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
@@ -2982,14 +2982,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame,\nso it is only visible if the user manually scrolls the list up to make it visible.",
             "key.doc.declaration" : "public var overscrollFooter: AnyHeaderFooter?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "overscrollFooter<\/Name>s:10ListableUI7ContentV16overscrollFooterAA09AnyHeaderE0_pSgvp<\/USR>public var overscrollFooter: AnyHeaderFooter?<\/Declaration>The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame, so it is only visible if the user manually scrolls the list up to make it visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "overscrollFooter<\/Name>s:10ListableUI7ContentV16overscrollFooterAA09AnyHeaderE0_pSgvp<\/USR>public var overscrollFooter: AnyHeaderFooter?<\/Declaration>The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame, so it is only visible if the user manually scrolls the list up to make it visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 31,
             "key.doc.name" : "overscrollFooter",
             "key.doc.type" : "Other",
             "key.doclength" : 196,
             "key.docoffset" : 755,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
@@ -3018,14 +3018,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "All sections in the list.",
             "key.doc.declaration" : "public var sections: [Section]",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "sections<\/Name>s:10ListableUI7ContentV8sectionsSayAA7SectionVGvp<\/USR>public var sections: [Section]<\/Declaration>All sections in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "sections<\/Name>s:10ListableUI7ContentV8sectionsSayAA7SectionVGvp<\/USR>public var sections: [Section]<\/Declaration>All sections in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 34,
             "key.doc.name" : "sections",
             "key.doc.type" : "Other",
             "key.doclength" : 30,
             "key.docoffset" : 1011,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sections<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 24,
@@ -3056,14 +3056,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "Any sections that have a non-zero number of items.",
             "key.doc.declaration" : "public var nonEmptySections: [Section] { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "nonEmptySections<\/Name>s:10ListableUI7ContentV16nonEmptySectionsSayAA7SectionVGvp<\/USR>public var nonEmptySections: [Section] { get }<\/Declaration>Any sections that have a non-zero number of items.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "nonEmptySections<\/Name>s:10ListableUI7ContentV16nonEmptySectionsSayAA7SectionVGvp<\/USR>public var nonEmptySections: [Section] { get }<\/Declaration>Any sections that have a non-zero number of items.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 37,
             "key.doc.name" : "nonEmptySections",
             "key.doc.type" : "Other",
             "key.doclength" : 55,
             "key.docoffset" : 1086,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> nonEmptySections<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 99,
@@ -3093,14 +3093,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The total number of items in all of the sections in the list.",
             "key.doc.declaration" : "public var itemCount: Int { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "itemCount<\/Name>s:10ListableUI7ContentV9itemCountSivp<\/USR>public var itemCount: Int { get }<\/Declaration>The total number of items in all of the sections in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "itemCount<\/Name>s:10ListableUI7ContentV9itemCountSivp<\/USR>public var itemCount: Int { get }<\/Declaration>The total number of items in all of the sections in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 42,
             "key.doc.name" : "itemCount",
             "key.doc.type" : "Other",
             "key.doclength" : 66,
             "key.docoffset" : 1261,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 91,
@@ -3130,14 +3130,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Check if the content contains any of the given types, which you specify via the `filters`\nparameter. If you do not specify a `filters` parameter, `[.items]` is used.",
             "key.doc.declaration" : "public func contains(any filters: Set = [.items]) -> Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "contains(any:)<\/Name>s:10ListableUI7ContentV8contains3anySbShyAA0C7FiltersOG_tF<\/USR>public func contains(any filters: Set<ContentFilters> = [.items]) -> Bool<\/Declaration>Check if the content contains any of the given types, which you specify via the filters<\/codeVoice> parameter. If you do not specify a filters<\/codeVoice> parameter, [.items]<\/codeVoice> is used.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "contains(any:)<\/Name>s:10ListableUI7ContentV8contains3anySbShyAA0C7FiltersOG_tF<\/USR>public func contains(any filters: Set<ContentFilters> = [.items]) -> Bool<\/Declaration>Check if the content contains any of the given types, which you specify via the filters<\/codeVoice> parameter. If you do not specify a filters<\/codeVoice> parameter, [.items]<\/codeVoice> is used.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 48,
             "key.doc.name" : "contains(any:)",
             "key.doc.type" : "Function",
             "key.doclength" : 178,
             "key.docoffset" : 1439,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> contains<\/decl.name>(any<\/decl.var.parameter.argument_label> filters<\/decl.var.parameter.name>: Set<\/ref.struct><ContentFilters<\/ref.enum>><\/decl.var.parameter.type> = [.items]<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 850,
@@ -3173,7 +3173,7 @@
                 "key.offset" : 2535
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Content<\/ref.struct>.Build<\/decl.name> = (inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 39,
@@ -3203,14 +3203,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a new instance, configured as needed via the provided builder block.",
             "key.doc.declaration" : "public init(with build: Build)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "init(with:)<\/Name>s:10ListableUI7ContentV4withACyACzXE_tcfc<\/USR>public init(with build: Build)<\/Declaration>Creates a new instance, configured as needed via the provided builder block.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "init(with:)<\/Name>s:10ListableUI7ContentV4withACyACzXE_tcfc<\/USR>public init(with build: Build)<\/Declaration>Creates a new instance, configured as needed via the provided builder block.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 87,
             "key.doc.name" : "init(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 81,
             "key.docoffset" : 2591,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> build<\/decl.var.parameter.name>: Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 86,
@@ -3248,14 +3248,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a new instance with the provided parameters.\nAll parameters are optional, pass only what you need to customize.",
             "key.doc.declaration" : "public init(identifier: AnyHashable? = nil, refreshControl: RefreshControl? = nil, header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, overscrollFooter: AnyHeaderFooter? = nil, sections: [Section] = [])",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "init(identifier:refreshControl:header:footer:overscrollFooter:sections:)<\/Name>s:10ListableUI7ContentV10identifier14refreshControl6header6footer16overscrollFooter8sectionsACs11AnyHashableVSg_AA07RefreshF0VSgAA0l6HeaderJ0_pSgA2QSayAA7SectionVGtcfc<\/USR>public init(identifier: AnyHashable? = nil, refreshControl: RefreshControl? = nil, header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, overscrollFooter: AnyHeaderFooter? = nil, sections: [Section] = [])<\/Declaration>Creates a new instance with the provided parameters. All parameters are optional, pass only what you need to customize.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "init(identifier:refreshControl:header:footer:overscrollFooter:sections:)<\/Name>s:10ListableUI7ContentV10identifier14refreshControl6header6footer16overscrollFooter8sectionsACs11AnyHashableVSg_AA07RefreshF0VSgAA0l6HeaderJ0_pSgA2QSayAA7SectionVGtcfc<\/USR>public init(identifier: AnyHashable? = nil, refreshControl: RefreshControl? = nil, header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, overscrollFooter: AnyHeaderFooter? = nil, sections: [Section] = [])<\/Declaration>Creates a new instance with the provided parameters. All parameters are optional, pass only what you need to customize.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 96,
             "key.doc.name" : "init(identifier:refreshControl:header:footer:overscrollFooter:sections:)",
             "key.doc.type" : "Function",
             "key.doclength" : 132,
             "key.docoffset" : 2779,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(identifier<\/decl.var.parameter.argument_label>: AnyHashable<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, refreshControl<\/decl.var.parameter.argument_label>: RefreshControl<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, overscrollFooter<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, sections<\/decl.var.parameter.argument_label>: [Section<\/ref.struct>]<\/decl.var.parameter.type> = []<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 533,
@@ -3301,14 +3301,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The first `Item` in the content. Returns nil if there is no content in any section.",
             "key.doc.declaration" : "public var firstItem: AnyItem? { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "firstItem<\/Name>s:10ListableUI7ContentV9firstItemAA03AnyE0_pSgvp<\/USR>public var firstItem: AnyItem? { get }<\/Declaration>The first Item<\/codeVoice> in the content. Returns nil if there is no content in any section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "firstItem<\/Name>s:10ListableUI7ContentV9firstItemAA03AnyE0_pSgvp<\/USR>public var firstItem: AnyItem? { get }<\/Declaration>The first Item<\/codeVoice> in the content. Returns nil if there is no content in any section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 121,
             "key.doc.name" : "firstItem",
             "key.doc.type" : "Other",
             "key.doclength" : 88,
             "key.docoffset" : 3513,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> firstItem<\/decl.name>: AnyItem<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 169,
@@ -3338,14 +3338,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The last `Item` in the content. Returns nil if there is no content in any section.",
             "key.doc.declaration" : "public var lastItem: AnyItem? { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "lastItem<\/Name>s:10ListableUI7ContentV8lastItemAA03AnyE0_pSgvp<\/USR>public var lastItem: AnyItem? { get }<\/Declaration>The last Item<\/codeVoice> in the content. Returns nil if there is no content in any section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "lastItem<\/Name>s:10ListableUI7ContentV8lastItemAA03AnyE0_pSgvp<\/USR>public var lastItem: AnyItem? { get }<\/Declaration>The last Item<\/codeVoice> in the content. Returns nil if there is no content in any section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 130,
             "key.doc.name" : "lastItem",
             "key.doc.type" : "Other",
             "key.doclength" : 87,
             "key.docoffset" : 3791,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastItem<\/decl.name>: AnyItem<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 164,
@@ -3375,14 +3375,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Returns the `Item` at the given `IndexPath`.\nThe `IndexPath` must be valid. If it is not, a fatal error will occur,",
             "key.doc.declaration" : "public func item(at indexPath: IndexPath) -> AnyItem",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "item(at:)<\/Name>s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF<\/USR>public func item(at indexPath: IndexPath) -> AnyItem<\/Declaration>Returns the Item<\/codeVoice> at the given IndexPath<\/codeVoice>. The IndexPath<\/codeVoice> must be valid. If it is not, a fatal error will occur,<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "item(at:)<\/Name>s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF<\/USR>public func item(at indexPath: IndexPath) -> AnyItem<\/Declaration>Returns the Item<\/codeVoice> at the given IndexPath<\/codeVoice>. The IndexPath<\/codeVoice> must be valid. If it is not, a fatal error will occur,<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 140,
             "key.doc.name" : "item(at:)",
             "key.doc.type" : "Function",
             "key.doclength" : 128,
             "key.docoffset" : 4063,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> item<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyItem<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 191,
@@ -3396,7 +3396,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let section: Section<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: Section<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 46,
@@ -3413,7 +3413,7 @@
               },
               {
                 "key.annotated_decl" : "let item: AnyItem<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 40,
@@ -3453,14 +3453,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Returns the first `IndexPath` for the contained `Item` with the given `AnyIdentifier`,\nif it can be found. If nothing is found, nil is returned.\nIf you have multiple `Item`s with the same identifier, the first one will be returned.",
             "key.doc.declaration" : "public func firstIndexPath(for identifier: AnyIdentifier) -> IndexPath?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "firstIndexPath(for:)<\/Name>s:10ListableUI7ContentV14firstIndexPath3for10Foundation0eF0VSgAA13AnyIdentifierC_tF<\/USR>public func firstIndexPath(for identifier: AnyIdentifier) -> IndexPath?<\/Declaration>Returns the first IndexPath<\/codeVoice> for the contained Item<\/codeVoice> with the given AnyIdentifier<\/codeVoice>, if it can be found. If nothing is found, nil is returned. If you have multiple Item<\/codeVoice>s with the same identifier, the first one will be returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "firstIndexPath(for:)<\/Name>s:10ListableUI7ContentV14firstIndexPath3for10Foundation0eF0VSgAA13AnyIdentifierC_tF<\/USR>public func firstIndexPath(for identifier: AnyIdentifier) -> IndexPath?<\/Declaration>Returns the first IndexPath<\/codeVoice> for the contained Item<\/codeVoice> with the given AnyIdentifier<\/codeVoice>, if it can be found. If nothing is found, nil is returned. If you have multiple Item<\/codeVoice>s with the same identifier, the first one will be returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 151,
             "key.doc.name" : "firstIndexPath(for:)",
             "key.doc.type" : "Function",
             "key.doclength" : 252,
             "key.docoffset" : 4403,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> firstIndexPath<\/decl.name>(for<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 409,
@@ -3493,14 +3493,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Returns the `IndexPath` of the last `Item` in the content.\nReturns nil if there are no `Item`s in the content.",
             "key.doc.declaration" : "public func lastIndexPath() -> IndexPath?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "lastIndexPath()<\/Name>s:10ListableUI7ContentV13lastIndexPath10Foundation0eF0VSgyF<\/USR>public func lastIndexPath() -> IndexPath?<\/Declaration>Returns the IndexPath<\/codeVoice> of the last Item<\/codeVoice> in the content. Returns nil if there are no Item<\/codeVoice>s in the content.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "lastIndexPath()<\/Name>s:10ListableUI7ContentV13lastIndexPath10Foundation0eF0VSgyF<\/USR>public func lastIndexPath() -> IndexPath?<\/Declaration>Returns the IndexPath<\/codeVoice> of the last Item<\/codeVoice> in the content. Returns nil if there are no Item<\/codeVoice>s in the content.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 166,
             "key.doc.name" : "lastIndexPath()",
             "key.doc.type" : "Function",
             "key.doclength" : 123,
             "key.docoffset" : 5081,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> lastIndexPath<\/decl.name>() -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 332,
@@ -3541,14 +3541,14 @@
             "key.doc.column" : 19,
             "key.doc.comment" : "\/\/\/ Moves the `Item` at the `from` index path to the `to` index path.\nIf the index paths are the same, nothing occurs.",
             "key.doc.declaration" : "mutating func moveItem(from: IndexPath, to: IndexPath)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "moveItem(from:to:)<\/Name>s:10ListableUI7ContentV8moveItem4from2toy10Foundation9IndexPathV_AItF<\/USR>mutating func moveItem(from: IndexPath, to: IndexPath)<\/Declaration>\/\/\/ Moves the Item<\/codeVoice> at the from<\/codeVoice> index path to the to<\/codeVoice> index path. If the index paths are the same, nothing occurs.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "moveItem(from:to:)<\/Name>s:10ListableUI7ContentV8moveItem4from2toy10Foundation9IndexPathV_AItF<\/USR>mutating func moveItem(from: IndexPath, to: IndexPath)<\/Declaration>\/\/\/ Moves the Item<\/codeVoice> at the from<\/codeVoice> index path to the to<\/codeVoice> index path. If the index paths are the same, nothing occurs.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 184,
             "key.doc.name" : "moveItem(from:to:)",
             "key.doc.type" : "Function",
             "key.doclength" : 131,
             "key.docoffset" : 5606,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> moveItem<\/decl.name>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 247,
@@ -3562,7 +3562,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let item: AnyItem<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 30,
@@ -3607,14 +3607,14 @@
             "key.doc.column" : 26,
             "key.doc.comment" : "Removes all `Section`s that do not contain any `Item`s.",
             "key.doc.declaration" : "public mutating func removeEmpty()",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "removeEmpty()<\/Name>s:10ListableUI7ContentV11removeEmptyyyF<\/USR>public mutating func removeEmpty()<\/Declaration>Removes all Section<\/codeVoice>s that do not contain any Item<\/codeVoice>s.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "removeEmpty()<\/Name>s:10ListableUI7ContentV11removeEmptyyyF<\/USR>public mutating func removeEmpty()<\/Declaration>Removes all Section<\/codeVoice>s that do not contain any Item<\/codeVoice>s.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 197,
             "key.doc.name" : "removeEmpty()",
             "key.doc.type" : "Function",
             "key.doclength" : 60,
             "key.docoffset" : 6007,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> removeEmpty<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 103,
@@ -3652,14 +3652,14 @@
             "key.doc.column" : 26,
             "key.doc.comment" : "Appends a `Section` to the end of the `Content`.",
             "key.doc.declaration" : "public mutating func add(_ section: Section)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "add(_:)<\/Name>s:10ListableUI7ContentV3addyyAA7SectionVF<\/USR>public mutating func add(_ section: Section)<\/Declaration>Appends a Section<\/codeVoice> to the end of the Content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "add(_:)<\/Name>s:10ListableUI7ContentV3addyyAA7SectionVF<\/USR>public mutating func add(_ section: Section)<\/Declaration>Appends a Section<\/codeVoice> to the end of the Content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 205,
             "key.doc.name" : "add(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 53,
             "key.docoffset" : 6200,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(_<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 79,
@@ -3692,14 +3692,14 @@
             "key.doc.column" : 24,
             "key.doc.comment" : "Appends a `Section` to the end of the `Content`.",
             "key.doc.declaration" : "public static func += (lhs: inout Content, rhs: Section)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI7ContentV2peoiyyACz_AA7SectionVtFZ<\/USR>public static func += (lhs: inout Content, rhs: Section)<\/Declaration>Appends a Section<\/codeVoice> to the end of the Content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI7ContentV2peoiyyACz_AA7SectionVtFZ<\/USR>public static func += (lhs: inout Content, rhs: Section)<\/Declaration>Appends a Section<\/codeVoice> to the end of the Content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 211,
             "key.doc.name" : "+=(_:_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 53,
             "key.docoffset" : 6362,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 84,
@@ -3841,7 +3841,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var lhs: inout Content<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>",
                 "key.kind" : "source.lang.swift.decl.var.parameter",
                 "key.length" : 3,
@@ -3875,14 +3875,14 @@
             "key.doc.column" : 24,
             "key.doc.comment" : "Appends a list of `Section`s to the end of the `Content`.",
             "key.doc.declaration" : "public static func += (lhs: inout Content, rhs: [Section])",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI7ContentV2peoiyyACz_SayAA7SectionVGtFZ<\/USR>public static func += (lhs: inout Content, rhs: [Section])<\/Declaration>Appends a list of Section<\/codeVoice>s to the end of the Content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI7ContentV2peoiyyACz_SayAA7SectionVGtFZ<\/USR>public static func += (lhs: inout Content, rhs: [Section])<\/Declaration>Appends a list of Section<\/codeVoice>s to the end of the Content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 217,
             "key.doc.name" : "+=(_:_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 62,
             "key.docoffset" : 6520,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [Section<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 93,
@@ -4024,7 +4024,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var lhs: inout Content<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>",
                 "key.kind" : "source.lang.swift.decl.var.parameter",
                 "key.length" : 3,
@@ -4045,7 +4045,7 @@
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public mutating func callAsFunction<Identifier>(_ identifier: Identifier<\/Type>, build: Section<\/Type>.Build<\/Type>) where Identifier : Hashable<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public mutating func callAsFunction<Identifier>(_ identifier: Identifier<\/Type>, configure: Section<\/Type>.Configure<\/Type>) where Identifier : Hashable<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.mutating",
@@ -4058,11 +4058,11 @@
                 "key.offset" : 7315
               }
             ],
-            "key.bodylength" : 55,
-            "key.bodyoffset" : 7427,
+            "key.bodylength" : 63,
+            "key.bodyoffset" : 7435,
             "key.doc.column" : 26,
             "key.doc.comment" : "\nAllows streamlined creation of sections when building a list, leveraging Swift's `callAsFunction`\nfeature, allowing treating objects as function calls.\n\nIn layperson's terms, this allows you to replace code like this:\n```\nlistView.configure { list in\n    list += Section(\"section-id\") { section in\n        ...\n    }\n}\n```\nWith this code, which is functionally identical:\n```\nlistView.configure { list in\n    list(\"section-id\") { section in\n        ...\n    }\n}",
-            "key.doc.declaration" : "public mutating func callAsFunction(_ identifier: Identifier, build: Section.Build) where Identifier : Hashable",
+            "key.doc.declaration" : "public mutating func callAsFunction(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable",
             "key.doc.discussion" : [
               {
                 "Para" : "In layperson’s terms, this allows you to replace code like this:"
@@ -4077,22 +4077,22 @@
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "callAsFunction(_:build:)<\/Name>s:10ListableUI7ContentV14callAsFunction_5buildyx_yAA7SectionVzXEtSHRzlF<\/USR>public mutating func callAsFunction<Identifier>(_ identifier: Identifier, build: Section.Build) where Identifier : Hashable<\/Declaration>Allows streamlined creation of sections when building a list, leveraging Swift’s callAsFunction<\/codeVoice> feature, allowing treating objects as function calls.<\/Para><\/Abstract>In layperson’s terms, this allows you to replace code like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>With this code, which is functionally identical:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "callAsFunction(_:configure:)<\/Name>s:10ListableUI7ContentV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF<\/USR>public mutating func callAsFunction<Identifier>(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable<\/Declaration>Allows streamlined creation of sections when building a list, leveraging Swift’s callAsFunction<\/codeVoice> feature, allowing treating objects as function calls.<\/Para><\/Abstract>In layperson’s terms, this allows you to replace code like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>With this code, which is functionally identical:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 242,
-            "key.doc.name" : "callAsFunction(_:build:)",
+            "key.doc.name" : "callAsFunction(_:configure:)",
             "key.doc.type" : "Function",
             "key.doclength" : 615,
             "key.docoffset" : 6696,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> callAsFunction<\/decl.name><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: Section<\/ref.struct>.Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> callAsFunction<\/decl.name><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Section<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 152,
-            "key.name" : "callAsFunction(_:build:)",
-            "key.namelength" : 85,
+            "key.length" : 168,
+            "key.name" : "callAsFunction(_:configure:)",
+            "key.namelength" : 93,
             "key.nameoffset" : 7336,
             "key.offset" : 7331,
-            "key.parsed_declaration" : "public mutating func callAsFunction(_ identifier : Identifier, build : Section.Build)",
+            "key.parsed_declaration" : "public mutating func callAsFunction(_ identifier : Identifier, configure : Section.Configure)",
             "key.parsed_scope.end" : 245,
             "key.parsed_scope.start" : 242,
             "key.substructure" : [
@@ -4105,7 +4105,7 @@
                     "key.offset" : 7362
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -4123,12 +4123,12 @@
                 "key.parsed_scope.start" : 242,
                 "key.typename" : "Identifier.Type",
                 "key.typeusr" : "$sxmD",
-                "key.usr" : "s:10ListableUI7ContentV14callAsFunction_5buildyx_yAA7SectionVzXEtSHRzlF10IdentifierL_xmfp"
+                "key.usr" : "s:10ListableUI7ContentV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF10IdentifierL_xmfp"
               }
             ],
             "key.typename" : " (inout Content) -> (Identifier, (inout Section) -> ()) -> ()",
-            "key.typeusr" : "$s_5buildyx_y10ListableUI7SectionVzXEtcSHRzluD",
-            "key.usr" : "s:10ListableUI7ContentV14callAsFunction_5buildyx_yAA7SectionVzXEtSHRzlF"
+            "key.typeusr" : "$s_9configureyx_y10ListableUI7SectionVzXEtcSHRzluD",
+            "key.usr" : "s:10ListableUI7ContentV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
@@ -4137,34 +4137,34 @@
               {
                 "key.attribute" : "source.decl.attribute.mutating",
                 "key.length" : 8,
-                "key.offset" : 7555
+                "key.offset" : 7571
               },
               {
                 "key.attribute" : "source.decl.attribute.internal",
                 "key.length" : 8,
-                "key.offset" : 7546
+                "key.offset" : 7562
               }
             ],
             "key.bodylength" : 79,
-            "key.bodyoffset" : 7607,
+            "key.bodyoffset" : 7623,
             "key.doc.column" : 28,
             "key.doc.comment" : "Removes the `Item` at the given `IndexPath`.",
             "key.doc.declaration" : "internal mutating func remove(at indexPath: IndexPath)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "remove(at:)<\/Name>s:10ListableUI7ContentV6remove2aty10Foundation9IndexPathV_tF<\/USR>internal mutating func remove(at indexPath: IndexPath)<\/Declaration>Removes the Item<\/codeVoice> at the given IndexPath<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "remove(at:)<\/Name>s:10ListableUI7ContentV6remove2aty10Foundation9IndexPathV_tF<\/USR>internal mutating func remove(at indexPath: IndexPath)<\/Declaration>Removes the Item<\/codeVoice> at the given IndexPath<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 248,
             "key.doc.name" : "remove(at:)",
             "key.doc.type" : "Function",
             "key.doclength" : 49,
-            "key.docoffset" : 7493,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.docoffset" : 7509,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> remove<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 123,
             "key.name" : "remove(at:)",
             "key.namelength" : 32,
-            "key.nameoffset" : 7569,
-            "key.offset" : 7564,
+            "key.nameoffset" : 7585,
+            "key.offset" : 7580,
             "key.parsed_declaration" : "internal mutating func remove(at indexPath : IndexPath)",
             "key.parsed_scope.end" : 251,
             "key.parsed_scope.start" : 248,
@@ -4182,34 +4182,34 @@
               {
                 "key.attribute" : "source.decl.attribute.mutating",
                 "key.length" : 8,
-                "key.offset" : 7759
+                "key.offset" : 7775
               },
               {
                 "key.attribute" : "source.decl.attribute.internal",
                 "key.length" : 8,
-                "key.offset" : 7750
+                "key.offset" : 7766
               }
             ],
             "key.bodylength" : 85,
-            "key.bodyoffset" : 7827,
+            "key.bodyoffset" : 7843,
             "key.doc.column" : 28,
             "key.doc.comment" : "Inserts the `Item` at the given `IndexPath`.",
             "key.doc.declaration" : "internal mutating func insert(item: AnyItem, at indexPath: IndexPath)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "insert(item:at:)<\/Name>s:10ListableUI7ContentV6insert4item2atyAA7AnyItem_p_10Foundation9IndexPathVtF<\/USR>internal mutating func insert(item: AnyItem, at indexPath: IndexPath)<\/Declaration>Inserts the Item<\/codeVoice> at the given IndexPath<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "insert(item:at:)<\/Name>s:10ListableUI7ContentV6insert4item2atyAA7AnyItem_p_10Foundation9IndexPathVtF<\/USR>internal mutating func insert(item: AnyItem, at indexPath: IndexPath)<\/Declaration>Inserts the Item<\/codeVoice> at the given IndexPath<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 254,
             "key.doc.name" : "insert(item:at:)",
             "key.doc.type" : "Function",
             "key.doclength" : 49,
-            "key.docoffset" : 7697,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.docoffset" : 7713,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> insert<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 145,
             "key.name" : "insert(item:at:)",
             "key.namelength" : 48,
-            "key.nameoffset" : 7773,
-            "key.offset" : 7768,
+            "key.nameoffset" : 7789,
+            "key.offset" : 7784,
             "key.parsed_declaration" : "internal mutating func insert(item : AnyItem, at indexPath : IndexPath)",
             "key.parsed_scope.end" : 257,
             "key.parsed_scope.start" : 254,
@@ -4226,7 +4226,7 @@
             "key.name" : "MARK: Slicing Content",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 7933
+            "key.offset" : 7949
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
@@ -4235,11 +4235,11 @@
               {
                 "key.attribute" : "source.decl.attribute.internal",
                 "key.length" : 8,
-                "key.offset" : 8625
+                "key.offset" : 8641
               }
             ],
             "key.bodylength" : 775,
-            "key.bodyoffset" : 8741,
+            "key.bodyoffset" : 8757,
             "key.doc.column" : 19,
             "key.doc.comment" : "Creates a `Slice` of `Content` that allows cutting down a large list of `Content` to a more appropriate size\nfor display within a list. This is used by the presentation system to avoid needing to expensively measure and\nlay out every item in long lists.\n\nEg, if you provide 10,000 items to a list, we don't need to put all of those into the list right away. We only need to show\nenough to render the list to its current scroll position, plus some overscroll. This allows pretty significant performance\noptimizations for long lists that are not scrolled to the bottom, by culling most items.",
             "key.doc.declaration" : "internal func sliceTo(indexPath: IndexPath, plus additionalItems: Int = Content.Slice.defaultCount) -> Slice",
@@ -4248,35 +4248,35 @@
                 "Para" : "Eg, if you provide 10,000 items to a list, we don’t need to put all of those into the list right away. We only need to show enough to render the list to its current scroll position, plus some overscroll. This allows pretty significant performance optimizations for long lists that are not scrolled to the bottom, by culling most items."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-            "key.doc.full_as_xml" : "sliceTo(indexPath:plus:)<\/Name>s:10ListableUI7ContentV7sliceTo9indexPath4plusAC5SliceV10Foundation05IndexG0V_SitF<\/USR>internal func sliceTo(indexPath: IndexPath, plus additionalItems: Int = Content.Slice.defaultCount) -> Slice<\/Declaration>Creates a Slice<\/codeVoice> of Content<\/codeVoice> that allows cutting down a large list of Content<\/codeVoice> to a more appropriate size for display within a list. This is used by the presentation system to avoid needing to expensively measure and lay out every item in long lists.<\/Para><\/Abstract>Eg, if you provide 10,000 items to a list, we don’t need to put all of those into the list right away. We only need to show enough to render the list to its current scroll position, plus some overscroll. This allows pretty significant performance optimizations for long lists that are not scrolled to the bottom, by culling most items.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
+            "key.doc.full_as_xml" : "sliceTo(indexPath:plus:)<\/Name>s:10ListableUI7ContentV7sliceTo9indexPath4plusAC5SliceV10Foundation05IndexG0V_SitF<\/USR>internal func sliceTo(indexPath: IndexPath, plus additionalItems: Int = Content.Slice.defaultCount) -> Slice<\/Declaration>Creates a Slice<\/codeVoice> of Content<\/codeVoice> that allows cutting down a large list of Content<\/codeVoice> to a more appropriate size for display within a list. This is used by the presentation system to avoid needing to expensively measure and lay out every item in long lists.<\/Para><\/Abstract>Eg, if you provide 10,000 items to a list, we don’t need to put all of those into the list right away. We only need to show enough to render the list to its current scroll position, plus some overscroll. This allows pretty significant performance optimizations for long lists that are not scrolled to the bottom, by culling most items.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 271,
             "key.doc.name" : "sliceTo(indexPath:plus:)",
             "key.doc.type" : "Function",
             "key.doclength" : 650,
-            "key.docoffset" : 7971,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.docoffset" : 7987,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sliceTo<\/decl.name>(indexPath<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, plus<\/decl.var.parameter.argument_label> additionalItems<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type> = Content.Slice.defaultCount<\/decl.var.parameter>) -> Slice<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 883,
             "key.name" : "sliceTo(indexPath:plus:)",
             "key.namelength" : 87,
-            "key.nameoffset" : 8639,
-            "key.offset" : 8634,
+            "key.nameoffset" : 8655,
+            "key.offset" : 8650,
             "key.parsed_declaration" : "internal func sliceTo(indexPath : IndexPath, plus additionalItems : Int = Content.Slice.defaultCount) -> Slice",
             "key.parsed_scope.end" : 297,
             "key.parsed_scope.start" : 271,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var sliced: Content<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sliced<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 17,
                 "key.name" : "sliced",
                 "key.namelength" : 6,
-                "key.nameoffset" : 8754,
-                "key.offset" : 8750,
+                "key.nameoffset" : 8770,
+                "key.offset" : 8766,
                 "key.parsed_declaration" : "var sliced = self",
                 "key.parsed_scope.end" : 273,
                 "key.parsed_scope.start" : 273,
@@ -4286,14 +4286,14 @@
               },
               {
                 "key.annotated_decl" : "var remaining: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> remaining<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 54,
                 "key.name" : "remaining",
                 "key.namelength" : 9,
-                "key.nameoffset" : 8789,
-                "key.offset" : 8785,
+                "key.nameoffset" : 8805,
+                "key.offset" : 8801,
                 "key.parsed_declaration" : "var remaining : Int = indexPath.item + additionalItems",
                 "key.parsed_scope.end" : 275,
                 "key.parsed_scope.start" : 275,
@@ -4314,15 +4314,15 @@
       {
         "key.annotated_decl" : "public struct Content<\/Declaration>",
         "key.bodylength" : 445,
-        "key.bodyoffset" : 9541,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+        "key.bodyoffset" : 9557,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Content<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 465,
         "key.name" : "Content",
         "key.namelength" : 7,
-        "key.nameoffset" : 9532,
-        "key.offset" : 9522,
+        "key.nameoffset" : 9548,
+        "key.offset" : 9538,
         "key.parsed_declaration" : "extension Content",
         "key.parsed_scope.end" : 322,
         "key.parsed_scope.start" : 301,
@@ -4330,15 +4330,15 @@
           {
             "key.annotated_decl" : "struct Slice<\/Declaration>",
             "key.bodylength" : 420,
-            "key.bodyoffset" : 9564,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+            "key.bodyoffset" : 9580,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Slice<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 439,
             "key.name" : "Slice",
             "key.namelength" : 5,
-            "key.nameoffset" : 9553,
-            "key.offset" : 9546,
+            "key.nameoffset" : 9569,
+            "key.offset" : 9562,
             "key.parsed_declaration" : "struct Slice",
             "key.parsed_scope.end" : 321,
             "key.parsed_scope.start" : 303,
@@ -4346,14 +4346,14 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "static let defaultCount: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> defaultCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.static>",
                 "key.kind" : "source.lang.swift.decl.var.static",
                 "key.length" : 35,
                 "key.name" : "defaultCount",
                 "key.namelength" : 12,
-                "key.nameoffset" : 9584,
-                "key.offset" : 9573,
+                "key.nameoffset" : 9600,
+                "key.offset" : 9589,
                 "key.parsed_declaration" : "static let defaultCount : Int = 250",
                 "key.parsed_scope.end" : 305,
                 "key.parsed_scope.start" : 305,
@@ -4364,14 +4364,14 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let containsAllItems: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> containsAllItems<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 27,
                 "key.name" : "containsAllItems",
                 "key.namelength" : 16,
-                "key.nameoffset" : 9630,
-                "key.offset" : 9626,
+                "key.nameoffset" : 9646,
+                "key.offset" : 9642,
                 "key.parsed_declaration" : "let containsAllItems : Bool",
                 "key.parsed_scope.end" : 307,
                 "key.parsed_scope.start" : 307,
@@ -4382,14 +4382,14 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let content: Content<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
                 "key.name" : "content",
                 "key.namelength" : 7,
-                "key.nameoffset" : 9666,
-                "key.offset" : 9662,
+                "key.nameoffset" : 9682,
+                "key.offset" : 9678,
                 "key.parsed_declaration" : "let content : Content",
                 "key.parsed_scope.end" : 308,
                 "key.parsed_scope.start" : 308,
@@ -4401,15 +4401,15 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "init(containsAllItems: Bool<\/Type>, content: Content<\/Type>)<\/Declaration>",
                 "key.bodylength" : 97,
-                "key.bodyoffset" : 9759,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.bodyoffset" : 9775,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(containsAllItems<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 156,
                 "key.name" : "init(containsAllItems:content:)",
                 "key.namelength" : 48,
-                "key.nameoffset" : 9701,
-                "key.offset" : 9701,
+                "key.nameoffset" : 9717,
+                "key.offset" : 9717,
                 "key.parsed_declaration" : "init(containsAllItems : Bool, content : Content)",
                 "key.parsed_scope.end" : 314,
                 "key.parsed_scope.start" : 310,
@@ -4429,15 +4429,15 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "init()<\/Declaration>",
                 "key.bodylength" : 87,
-                "key.bodyoffset" : 9891,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
+                "key.bodyoffset" : 9907,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Content.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 104,
                 "key.name" : "init()",
                 "key.namelength" : 6,
-                "key.nameoffset" : 9875,
-                "key.offset" : 9875,
+                "key.nameoffset" : 9891,
+                "key.offset" : 9891,
                 "key.parsed_declaration" : "init()",
                 "key.parsed_scope.end" : 320,
                 "key.parsed_scope.start" : 316,
@@ -4466,7 +4466,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 1333,
     "key.offset" : 0,
@@ -4494,8 +4494,8 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
-        "key.doc.full_as_xml" : "ContentFilters<\/Name>s:10ListableUI14ContentFiltersO<\/USR>public enum ContentFilters : Hashable, CaseIterable<\/Declaration>A filter enum which allows you to query the types of content contained in a Content<\/codeVoice> or Section<\/codeVoice> object.<\/Para><\/Abstract>For example, to see if Content<\/codeVoice> contains any items or section headers, you could do:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
+        "key.doc.full_as_xml" : "ContentFilters<\/Name>s:10ListableUI14ContentFiltersO<\/USR>public enum ContentFilters : Hashable, CaseIterable<\/Declaration>A filter enum which allows you to query the types of content contained in a Content<\/codeVoice> or Section<\/codeVoice> object.<\/Para><\/Abstract>For example, to see if Content<\/codeVoice> contains any items or section headers, you could do:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
         "key.doc.line" : 17,
         "key.doc.name" : "ContentFilters",
         "key.doc.type" : "Other",
@@ -4513,7 +4513,7 @@
             "key.offset" : 440
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ContentFilters<\/decl.name> : Hashable<\/ref.protocol>, CaseIterable<\/ref.protocol><\/decl.enum>",
         "key.inheritedtypes" : [
           {
@@ -4548,14 +4548,14 @@
             "key.doc.column" : 23,
             "key.doc.comment" : "If there is any content in the list at all, including headers and footers.",
             "key.doc.declaration" : "public static var anyContent: Set<`Self`> { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
-            "key.doc.full_as_xml" : "anyContent<\/Name>s:10ListableUI14ContentFiltersO03anyC0ShyACGvpZ<\/USR>public static var anyContent: Set<`Self`> { get }<\/Declaration>If there is any content in the list at all, including headers and footers.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
+            "key.doc.full_as_xml" : "anyContent<\/Name>s:10ListableUI14ContentFiltersO03anyC0ShyACGvpZ<\/USR>public static var anyContent: Set<`Self`> { get }<\/Declaration>If there is any content in the list at all, including headers and footers.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 20,
             "key.doc.name" : "anyContent",
             "key.doc.type" : "Other",
             "key.doclength" : 79,
             "key.docoffset" : 464,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> anyContent<\/decl.name>: Set<\/ref.struct><`Self`><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 68,
@@ -4585,14 +4585,14 @@
             "key.doc.column" : 23,
             "key.doc.comment" : "Check if the content in the list is section-driven content, with the\ncheck ignoring any list-level fields.",
             "key.doc.declaration" : "public static var sectionsOnly: Set<`Self`> { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
-            "key.doc.full_as_xml" : "sectionsOnly<\/Name>s:10ListableUI14ContentFiltersO12sectionsOnlyShyACGvpZ<\/USR>public static var sectionsOnly: Set<`Self`> { get }<\/Declaration>Check if the content in the list is section-driven content, with the check ignoring any list-level fields.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
+            "key.doc.full_as_xml" : "sectionsOnly<\/Name>s:10ListableUI14ContentFiltersO12sectionsOnlyShyACGvpZ<\/USR>public static var sectionsOnly: Set<`Self`> { get }<\/Declaration>Check if the content in the list is section-driven content, with the check ignoring any list-level fields.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 26,
             "key.doc.name" : "sectionsOnly",
             "key.doc.type" : "Other",
             "key.doclength" : 119,
             "key.docoffset" : 632,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionsOnly<\/decl.name>: Set<\/ref.struct><`Self`><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 140,
@@ -4620,14 +4620,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "If the list has a list-level header.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
-                "key.doc.full_as_xml" : "listHeader<\/Name>s:10ListableUI14ContentFiltersO10listHeaderyA2CmF<\/USR><\/Declaration>If the list has a list-level header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.doc.full_as_xml" : "listHeader<\/Name>s:10ListableUI14ContentFiltersO10listHeaderyA2CmF<\/USR><\/Declaration>If the list has a list-level header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 35,
                 "key.doc.name" : "listHeader",
                 "key.doc.type" : "Other",
                 "key.doclength" : 41,
                 "key.docoffset" : 912,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listHeader<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 10,
@@ -4657,14 +4657,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "If the list has a list-level footer.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
-                "key.doc.full_as_xml" : "listFooter<\/Name>s:10ListableUI14ContentFiltersO10listFooteryA2CmF<\/USR><\/Declaration>If the list has a list-level footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.doc.full_as_xml" : "listFooter<\/Name>s:10ListableUI14ContentFiltersO10listFooteryA2CmF<\/USR><\/Declaration>If the list has a list-level footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 37,
                 "key.doc.name" : "listFooter",
                 "key.doc.type" : "Other",
                 "key.doclength" : 41,
                 "key.docoffset" : 977,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listFooter<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 10,
@@ -4694,14 +4694,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "If the list has an overscroll footer.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
-                "key.doc.full_as_xml" : "overscrollFooter<\/Name>s:10ListableUI14ContentFiltersO16overscrollFooteryA2CmF<\/USR><\/Declaration>If the list has an overscroll footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.doc.full_as_xml" : "overscrollFooter<\/Name>s:10ListableUI14ContentFiltersO16overscrollFooteryA2CmF<\/USR><\/Declaration>If the list has an overscroll footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 39,
                 "key.doc.name" : "overscrollFooter",
                 "key.doc.type" : "Other",
                 "key.doclength" : 42,
                 "key.docoffset" : 1042,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> overscrollFooter<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 16,
@@ -4731,14 +4731,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "If the sections in the list contain any items.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
-                "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI14ContentFiltersO5itemsyA2CmF<\/USR><\/Declaration>If the sections in the list contain any items.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI14ContentFiltersO5itemsyA2CmF<\/USR><\/Declaration>If the sections in the list contain any items.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 42,
                 "key.doc.name" : "items",
                 "key.doc.type" : "Other",
                 "key.doclength" : 51,
                 "key.docoffset" : 1119,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> items<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 5,
@@ -4768,14 +4768,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "If any section in the list has a header.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
-                "key.doc.full_as_xml" : "sectionHeaders<\/Name>s:10ListableUI14ContentFiltersO14sectionHeadersyA2CmF<\/USR><\/Declaration>If any section in the list has a header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.doc.full_as_xml" : "sectionHeaders<\/Name>s:10ListableUI14ContentFiltersO14sectionHeadersyA2CmF<\/USR><\/Declaration>If any section in the list has a header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 44,
                 "key.doc.name" : "sectionHeaders",
                 "key.doc.type" : "Other",
                 "key.doclength" : 45,
                 "key.docoffset" : 1189,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionHeaders<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 14,
@@ -4805,14 +4805,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "If any section in the list has a footer.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
-                "key.doc.full_as_xml" : "sectionFooters<\/Name>s:10ListableUI14ContentFiltersO14sectionFootersyA2CmF<\/USR><\/Declaration>If any section in the list has a footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.doc.full_as_xml" : "sectionFooters<\/Name>s:10ListableUI14ContentFiltersO14sectionFootersyA2CmF<\/USR><\/Declaration>If any section in the list has a footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 46,
                 "key.doc.name" : "sectionFooters",
                 "key.doc.type" : "Other",
                 "key.doclength" : 45,
                 "key.docoffset" : 1262,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ContentFilters.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentFilters.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionFooters<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 14,
@@ -4837,7 +4837,175 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentLayoutsStorage.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 900,
+    "key.offset" : 0,
+    "key.substructure" : [
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.internal",
+        "key.annotated_decl" : "struct ContentLayoutsStorage<\/Declaration>",
+        "key.bodylength" : 607,
+        "key.bodyoffset" : 291,
+        "key.doc.column" : 8,
+        "key.doc.comment" : "\nUnderlying storage used in `ItemLayouts`, `HeaderFooterLayouts`, and `SectionLayouts`.\nSee those types for more information.",
+        "key.doc.declaration" : "struct ContentLayoutsStorage",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentLayoutsStorage.swift",
+        "key.doc.full_as_xml" : "ContentLayoutsStorage<\/Name>s:10ListableUI21ContentLayoutsStorageV<\/USR>struct ContentLayoutsStorage<\/Declaration>Underlying storage used in ItemLayouts<\/codeVoice>, HeaderFooterLayouts<\/codeVoice>, and SectionLayouts<\/codeVoice>. See those types for more information.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.line" : 16,
+        "key.doc.name" : "ContentLayoutsStorage",
+        "key.doc.type" : "Class",
+        "key.doclength" : 141,
+        "key.docoffset" : 120,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentLayoutsStorage.swift",
+        "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ContentLayoutsStorage<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 638,
+        "key.name" : "ContentLayoutsStorage",
+        "key.namelength" : 21,
+        "key.nameoffset" : 268,
+        "key.offset" : 261,
+        "key.parsed_declaration" : "struct ContentLayoutsStorage",
+        "key.parsed_scope.end" : 40,
+        "key.parsed_scope.start" : 16,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.private",
+            "key.annotated_decl" : "private var storage: [ObjectIdentifier<\/Type> : Any]<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.private",
+                "key.length" : 7,
+                "key.offset" : 301
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentLayoutsStorage.swift",
+            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> storage<\/decl.name>: [ObjectIdentifier<\/ref.struct> : Any<\/syntaxtype.keyword>]<\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 42,
+            "key.name" : "storage",
+            "key.namelength" : 7,
+            "key.nameoffset" : 313,
+            "key.offset" : 309,
+            "key.parsed_declaration" : "private var storage : [ObjectIdentifier:Any] = [:]",
+            "key.parsed_scope.end" : 18,
+            "key.parsed_scope.start" : 18,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.private",
+            "key.typename" : "[ObjectIdentifier : Any]",
+            "key.typeusr" : "$sSDySOypGD",
+            "key.usr" : "s:10ListableUI21ContentLayoutsStorageV7storage33_F248E6F61551767C4A010A1266E652AALLSDySOypGvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func get<ValueType>(_ valueType: ValueType<\/Type>.Type, default defaultValue: @autoclosure () -> ValueType<\/Type>) -> ValueType<\/Type><\/Declaration>",
+            "key.bodylength" : 207,
+            "key.bodyoffset" : 504,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentLayoutsStorage.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> get<\/decl.name><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>, default<\/decl.var.parameter.argument_label> defaultValue<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ValueType<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ValueType<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 351,
+            "key.name" : "get(_:default:)",
+            "key.namelength" : 119,
+            "key.nameoffset" : 366,
+            "key.offset" : 361,
+            "key.parsed_declaration" : "func get(\n    _ valueType : ValueType.Type,\n    default defaultValue : @autoclosure () -> ValueType\n) -> ValueType",
+            "key.parsed_scope.end" : 32,
+            "key.parsed_scope.start" : 20,
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "ValueType<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentLayoutsStorage.swift",
+                "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>",
+                "key.kind" : "source.lang.swift.decl.generic_type_param",
+                "key.length" : 9,
+                "key.name" : "ValueType",
+                "key.namelength" : 9,
+                "key.nameoffset" : 370,
+                "key.offset" : 370,
+                "key.parsed_declaration" : "func getlet ID: ObjectIdentifier<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentLayoutsStorage.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> ID<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 36,
+                "key.name" : "ID",
+                "key.namelength" : 2,
+                "key.nameoffset" : 517,
+                "key.offset" : 513,
+                "key.parsed_declaration" : "let ID = ObjectIdentifier(valueType)",
+                "key.parsed_scope.end" : 25,
+                "key.parsed_scope.start" : 25,
+                "key.typename" : "ObjectIdentifier",
+                "key.typeusr" : "$sSOD",
+                "key.usr" : "s:10ListableUI21ContentLayoutsStorageV3get_7defaultxxm_xyXKtlF2IDL_SOvp"
+              }
+            ],
+            "key.typename" : " (ContentLayoutsStorage) -> (ValueType.Type, @autoclosure () -> ValueType) -> ValueType",
+            "key.typeusr" : "$s_7defaultxxm_xyXKtcluD",
+            "key.usr" : "s:10ListableUI21ContentLayoutsStorageV3get_7defaultxxm_xyXKtlF"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "mutating func set<ValueType>(_ valueType: ValueType<\/Type>.Type, new newValue: ValueType<\/Type>)<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.mutating",
+                "key.length" : 8,
+                "key.offset" : 722
+              }
+            ],
+            "key.bodylength" : 66,
+            "key.bodyoffset" : 830,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentLayoutsStorage.swift",
+            "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label> newValue<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 166,
+            "key.name" : "set(_:new:)",
+            "key.namelength" : 92,
+            "key.nameoffset" : 736,
+            "key.offset" : 731,
+            "key.parsed_declaration" : "mutating func set(\n    _ valueType : ValueType.Type,\n    new newValue : ValueType\n)",
+            "key.parsed_scope.end" : 39,
+            "key.parsed_scope.start" : 34,
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "ValueType<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ContentLayoutsStorage.swift",
+                "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>",
+                "key.kind" : "source.lang.swift.decl.generic_type_param",
+                "key.length" : 9,
+                "key.name" : "ValueType",
+                "key.namelength" : 9,
+                "key.nameoffset" : 740,
+                "key.offset" : 740,
+                "key.parsed_declaration" : "mutating func set (inout ContentLayoutsStorage) -> (ValueType.Type, ValueType) -> ()",
+            "key.typeusr" : "$s_3newyxm_xtcluD",
+            "key.usr" : "s:10ListableUI21ContentLayoutsStorageV3set_3newyxm_xtlF"
+          }
+        ],
+        "key.typename" : "ContentLayoutsStorage.Type",
+        "key.typeusr" : "$s10ListableUI21ContentLayoutsStorageVmD",
+        "key.usr" : "s:10ListableUI21ContentLayoutsStorageV"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 4010,
     "key.offset" : 0,
@@ -4864,7 +5032,7 @@
         "key.substructure" : [
           {
             "key.annotated_decl" : "static let updateContent: OSLog<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> updateContent<\/decl.name>: OSLog<\/ref.class><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 114,
@@ -4881,7 +5049,7 @@
           },
           {
             "key.annotated_decl" : "static let scrollView: OSLog<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> scrollView<\/decl.name>: OSLog<\/ref.class><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 115,
@@ -4898,7 +5066,7 @@
           },
           {
             "key.annotated_decl" : "static let listInteraction: OSLog<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> listInteraction<\/decl.name>: OSLog<\/ref.class><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 121,
@@ -4915,7 +5083,7 @@
           },
           {
             "key.annotated_decl" : "static let stateObserver: OSLog<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> stateObserver<\/decl.name>: OSLog<\/ref.class><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 125,
@@ -4943,14 +5111,14 @@
         "key.doc.column" : 10,
         "key.doc.comment" : "An object which can be logged to `SignpostLogger`.",
         "key.doc.declaration" : "protocol SignpostLoggable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
-        "key.doc.full_as_xml" : "SignpostLoggable<\/Name>s:10ListableUI16SignpostLoggableP<\/USR>protocol SignpostLoggable<\/Declaration>An object which can be logged to SignpostLogger<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+        "key.doc.full_as_xml" : "SignpostLoggable<\/Name>s:10ListableUI16SignpostLoggableP<\/USR>protocol SignpostLoggable<\/Declaration>An object which can be logged to SignpostLogger<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 36,
         "key.doc.name" : "SignpostLoggable",
         "key.doc.type" : "Class",
         "key.doclength" : 55,
         "key.docoffset" : 685,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
         "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> SignpostLoggable<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.protocol",
         "key.length" : 80,
@@ -4967,7 +5135,7 @@
             "key.annotated_decl" : "var signpostInfo: SignpostLoggingInfo<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 812,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> signpostInfo<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 46,
@@ -4995,14 +5163,14 @@
         "key.doc.column" : 8,
         "key.doc.comment" : "The info logged to `SignpostLogger` from a `SignpostLoggable`.",
         "key.doc.declaration" : "struct SignpostLoggingInfo",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
-        "key.doc.full_as_xml" : "SignpostLoggingInfo<\/Name>s:10ListableUI19SignpostLoggingInfoV<\/USR>struct SignpostLoggingInfo<\/Declaration>The info logged to SignpostLogger<\/codeVoice> from a SignpostLoggable<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+        "key.doc.full_as_xml" : "SignpostLoggingInfo<\/Name>s:10ListableUI19SignpostLoggingInfoV<\/USR>struct SignpostLoggingInfo<\/Declaration>The info logged to SignpostLogger<\/codeVoice> from a SignpostLoggable<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 42,
         "key.doc.name" : "SignpostLoggingInfo",
         "key.doc.type" : "Class",
         "key.doclength" : 67,
         "key.docoffset" : 823,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SignpostLoggingInfo<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 96,
@@ -5017,7 +5185,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var identifier: String<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 24,
@@ -5036,7 +5204,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var instanceIdentifier: String<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> instanceIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 32,
@@ -5073,14 +5241,14 @@
             "Para" : "WWDC 2018: https:\/\/developer.apple.com\/videos\/play\/wwdc2018\/405\/ WWDC 2019: https:\/\/developer.apple.com\/wwdc20\/10168 Swift By Sundell: https:\/\/www.swiftbysundell.com\/wwdc2018\/getting-started-with-signposts\/"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
-        "key.doc.full_as_xml" : "SignpostLogger<\/Name>s:10ListableUI14SignpostLoggerV<\/USR>struct SignpostLogger<\/Declaration>Signpost logging is logging visible in Instruments.app<\/Para><\/Abstract>Listable utilizes signpost logging to instrument various parts of the list update cycle: Content diffing, Collection View updating, item and header\/footer sizing, etc.<\/Para>]]><\/rawHTML>Resources]]><\/rawHTML>WWDC 2018: https:\/\/developer.apple.com\/videos\/play\/wwdc2018\/405\/ WWDC 2019: https:\/\/developer.apple.com\/wwdc20\/10168 Swift By Sundell: https:\/\/www.swiftbysundell.com\/wwdc2018\/getting-started-with-signposts\/<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+        "key.doc.full_as_xml" : "SignpostLogger<\/Name>s:10ListableUI14SignpostLoggerV<\/USR>struct SignpostLogger<\/Declaration>Signpost logging is logging visible in Instruments.app<\/Para><\/Abstract>Listable utilizes signpost logging to instrument various parts of the list update cycle: Content diffing, Collection View updating, item and header\/footer sizing, etc.<\/Para>]]><\/rawHTML>Resources]]><\/rawHTML>WWDC 2018: https:\/\/developer.apple.com\/videos\/play\/wwdc2018\/405\/ WWDC 2019: https:\/\/developer.apple.com\/wwdc20\/10168 Swift By Sundell: https:\/\/www.swiftbysundell.com\/wwdc2018\/getting-started-with-signposts\/<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 61,
         "key.doc.name" : "SignpostLogger",
         "key.doc.type" : "Class",
         "key.doclength" : 506,
         "key.docoffset" : 989,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SignpostLogger<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 2513,
@@ -5103,14 +5271,14 @@
                 "Para" : "Note that tests will fail while this is set to `false` in `DEBUG`, to ensure this is not accidentally commited as `false`."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
-            "key.doc.full_as_xml" : "isLoggingEnabled<\/Name>s:10ListableUI14SignpostLoggerV16isLoggingEnabledSbvpZ<\/USR>static let isLoggingEnabled: Bool<\/Declaration>You may temporarily set this param to false<\/codeVoice> to disable os_signpost logging, for example if debugging performance in Instruments.app.<\/Para><\/Abstract>Note that tests will fail while this is set to false<\/codeVoice> in DEBUG<\/codeVoice>, to ensure this is not accidentally commited as false<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.doc.full_as_xml" : "isLoggingEnabled<\/Name>s:10ListableUI14SignpostLoggerV16isLoggingEnabledSbvpZ<\/USR>static let isLoggingEnabled: Bool<\/Declaration>You may temporarily set this param to false<\/codeVoice> to disable os_signpost logging, for example if debugging performance in Instruments.app.<\/Para><\/Abstract>Note that tests will fail while this is set to false<\/codeVoice> in DEBUG<\/codeVoice>, to ensure this is not accidentally commited as false<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 69,
             "key.doc.name" : "isLoggingEnabled",
             "key.doc.type" : "Other",
             "key.doclength" : 294,
             "key.docoffset" : 1542,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> isLoggingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 34,
@@ -5140,7 +5308,7 @@
             "key.annotated_decl" : "static func log<Output>(log: OSLog<\/Type>, name: StaticString<\/Type>, for loggable: SignpostLoggable<\/Type>? = nil, _ output: () -> Output<\/Type>) -> Output<\/Type><\/Declaration>",
             "key.bodylength" : 296,
             "key.bodyoffset" : 2082,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> log<\/decl.name><Output<\/decl.generic_type_param.name><\/decl.generic_type_param>>(log<\/decl.var.parameter.argument_label>: OSLog<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, name<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> loggable<\/decl.var.parameter.name>: SignpostLoggable<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> output<\/decl.var.parameter.name>: () -> Output<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Output<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 434,
@@ -5159,7 +5327,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Output<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
                 "key.fully_annotated_decl" : "Output<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
@@ -5176,7 +5344,7 @@
               },
               {
                 "key.annotated_decl" : "let output: Output<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> output<\/decl.name>: Output<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 21,
@@ -5201,7 +5369,7 @@
             "key.annotated_decl" : "static func log(_ type: EventType<\/Type>, log: OSLog<\/Type>, name: StaticString<\/Type>, for loggable: SignpostLoggable<\/Type>? = nil)<\/Declaration>",
             "key.bodylength" : 602,
             "key.bodyoffset" : 2503,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> log<\/decl.name>(_<\/decl.var.parameter.argument_label> type<\/decl.var.parameter.name>: EventType<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, log<\/decl.var.parameter.argument_label>: OSLog<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, name<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> loggable<\/decl.var.parameter.name>: SignpostLoggable<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 717,
@@ -5229,7 +5397,7 @@
             "key.annotated_decl" : "enum SignpostLogger<\/Type>.EventType<\/Declaration>",
             "key.bodylength" : 310,
             "key.bodyoffset" : 3132,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> SignpostLogger<\/ref.struct>.EventType<\/decl.name><\/decl.enum>",
             "key.kind" : "source.lang.swift.decl.enum",
             "key.length" : 327,
@@ -5251,7 +5419,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case begin<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> begin<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 5,
@@ -5278,7 +5446,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case event<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> event<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 5,
@@ -5305,7 +5473,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case end<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> end<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 3,
@@ -5334,7 +5502,7 @@
                 ],
                 "key.bodylength" : 162,
                 "key.bodyoffset" : 3274,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toSignpostType<\/decl.name>: OSSignpostType<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 200,
@@ -5366,7 +5534,7 @@
             ],
             "key.bodylength" : 468,
             "key.bodyoffset" : 3537,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>(for<\/decl.var.parameter.argument_label> loggable<\/decl.var.parameter.name>: SignpostLoggable<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> String<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 545,
@@ -5380,7 +5548,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let info: SignpostLoggingInfo<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 32,
@@ -5397,7 +5565,7 @@
               },
               {
                 "key.annotated_decl" : "var components: [String<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Debugging and Logging\/SignpostLogger.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> components<\/decl.name>: [String<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 27,
@@ -5425,473 +5593,102 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Deprecations.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Deprecations.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 3142,
+    "key.length" : 1526,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
         "key.length" : 29,
-        "key.name" : "MARK: Deprecated Jul 15, 2020",
+        "key.name" : "MARK: Deprecated Jan 22, 2021",
         "key.namelength" : 0,
         "key.nameoffset" : 0,
         "key.offset" : 1241
       },
       {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public final class ListView : UIView, KeyboardObserverDelegate<\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 1275
-          }
-        ],
-        "key.bodylength" : 454,
-        "key.bodyoffset" : 1302,
+        "key.annotated_decl" : "public struct LayoutDescription<\/Declaration>",
+        "key.bodylength" : 220,
+        "key.bodyoffset" : 1304,
+        "key.doc.column" : 15,
         "key.doc.comment" : "\nThis file contains deprecations which have occurred in Listable, for which there are reasonable\nforward-moving defaults (eg, renames), to ease transitions for consumers when they update their library version.\n\nTo add new deprecations and changes:\n------------------------------------\n1) Add a new `MARK: Deprecated ` section for the deprecations you are adding.\n\n2) Add deprecation annotations like so:\n   ```\n   @available(*, deprecated, renamed: \"ItemContent\")\n   public typealias ItemElement = ItemContent\n   ```\n\n   Or, when deprecating properties, add a passthrough like so:\n   ```\n   public extension Item {\n      @available(*, deprecated, renamed: \"content\")\n      var element : Content {\n         self.content\n      }\n   }\n   ```\n\n3) After 1-2 months has passed, mark the previously `deprecated` items as `unavailable`:\n   ```\n   @available(*, unavailable, renamed: \"ItemContent\")\n   ```\n\n4) After another 1-2 months have passed, feel free to remove the `MARK: Deprecated` section you added.",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView, KeyboardObserverDelegate<\/decl.class>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 475,
-        "key.name" : "ListView",
-        "key.namelength" : 8,
-        "key.nameoffset" : 1292,
-        "key.offset" : 1282,
-        "key.parsed_declaration" : "public extension ListView",
-        "key.parsed_scope.end" : 62,
-        "key.parsed_scope.start" : 46,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.available",
-                "key.length" : 55,
-                "key.offset" : 1312
-              }
-            ],
-            "key.bodylength" : 26,
-            "key.bodyoffset" : 1423,
-            "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 78,
-            "key.name" : "setContent(_:)",
-            "key.namelength" : 44,
-            "key.nameoffset" : 1377,
-            "key.offset" : 1372,
-            "key.substructure" : [
-
-            ]
-          },
+        "key.doc.declaration" : "public struct LayoutDescription",
+        "key.doc.discussion" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.available",
-                "key.length" : 55,
-                "key.offset" : 1460
-              }
-            ],
-            "key.bodylength" : 26,
-            "key.bodyoffset" : 1577,
-            "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 84,
-            "key.name" : "setProperties(with:)",
-            "key.namelength" : 50,
-            "key.nameoffset" : 1525,
-            "key.offset" : 1520,
-            "key.substructure" : [
-
-            ]
+            "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type."
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.available",
-                "key.length" : 55,
-                "key.offset" : 1614
-              }
-            ],
-            "key.bodylength" : 26,
-            "key.bodyoffset" : 1728,
-            "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 81,
-            "key.name" : "setProperties(with:)",
-            "key.namelength" : 47,
-            "key.nameoffset" : 1679,
-            "key.offset" : 1674,
-            "key.substructure" : [
-
-            ]
-          }
-        ],
-        "key.typename" : "ListView.Type",
-        "key.typeusr" : "$s10ListableUI8ListViewCmD",
-        "key.usr" : "c:@M@ListableUI@objc(cs)ListView"
-      },
-      {
-        "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-        "key.length" : 28,
-        "key.name" : "MARK: Deprecated Jul 1, 2020",
-        "key.namelength" : 0,
-        "key.nameoffset" : 0,
-        "key.offset" : 1765
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct Section<\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 1798
-          }
-        ],
-        "key.bodylength" : 200,
-        "key.bodyoffset" : 1824,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Section<\/decl.name><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 220,
-        "key.name" : "Section",
-        "key.namelength" : 7,
-        "key.nameoffset" : 1815,
-        "key.offset" : 1805,
-        "key.parsed_declaration" : "public extension Section",
-        "key.parsed_scope.end" : 77,
-        "key.parsed_scope.start" : 68,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.available",
-                "key.length" : 61,
-                "key.offset" : 1830
-              }
-            ],
-            "key.bodylength" : 26,
-            "key.bodyoffset" : 1996,
-            "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 127,
-            "key.name" : "init(identifier:build:)",
-            "key.namelength" : 98,
-            "key.nameoffset" : 1896,
-            "key.offset" : 1896,
-            "key.substructure" : [
-              {
-                "key.annotated_decl" : "Identifier : Hashable<\/Type><\/Declaration>",
-                "key.elements" : [
-                  {
-                    "key.kind" : "source.lang.swift.structure.elem.typeref",
-                    "key.length" : 8,
-                    "key.offset" : 1912
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Deprecations.swift",
-                "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
-                "key.inheritedtypes" : [
-                  {
-                    "key.name" : "Hashable"
-                  }
-                ],
-                "key.kind" : "source.lang.swift.decl.generic_type_param",
-                "key.length" : 19,
-                "key.name" : "Identifier",
-                "key.namelength" : 10,
-                "key.nameoffset" : 1901,
-                "key.offset" : 1901,
-                "key.parsed_declaration" : "initpublic struct Item<Content> : AnyItem where Content : ItemContent<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 2538
+            "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)."
           }
         ],
-        "key.bodylength" : 107,
-        "key.bodyoffset" : 2561,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 42,
+        "key.doc.name" : "LayoutDescription",
+        "key.doc.type" : "Class",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 124,
-        "key.name" : "Item",
-        "key.namelength" : 4,
-        "key.nameoffset" : 2555,
-        "key.offset" : 2545,
-        "key.parsed_declaration" : "public extension Item",
-        "key.parsed_scope.end" : 101,
-        "key.parsed_scope.start" : 96,
+        "key.length" : 250,
+        "key.name" : "LayoutDescription",
+        "key.namelength" : 17,
+        "key.nameoffset" : 1285,
+        "key.offset" : 1275,
+        "key.parsed_declaration" : "extension LayoutDescription",
+        "key.parsed_scope.end" : 53,
+        "key.parsed_scope.start" : 46,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.attributes" : [
               {
-                "key.attribute" : "source.decl.attribute.available",
-                "key.length" : 46,
-                "key.offset" : 2566
-              }
-            ],
-            "key.bodylength" : 26,
-            "key.bodyoffset" : 2640,
-            "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 50,
-            "key.name" : "element",
-            "key.namelength" : 7,
-            "key.nameoffset" : 2621,
-            "key.offset" : 2617,
-            "key.typename" : "Content"
-          }
-        ],
-        "key.typename" : "Item.Type",
-        "key.typeusr" : "$s10ListableUI4ItemVyxGmD",
-        "key.usr" : "s:10ListableUI4ItemV"
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 2730
-          },
-          {
-            "key.attribute" : "source.decl.attribute.available",
-            "key.length" : 58,
-            "key.offset" : 2671
-          }
-        ],
-        "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-        "key.kind" : "source.lang.swift.decl.typealias",
-        "key.length" : 51,
-        "key.name" : "HeaderFooterElement",
-        "key.namelength" : 19,
-        "key.nameoffset" : 2747,
-        "key.offset" : 2737
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct HeaderFooter<Content> : AnyHeaderFooter where Content : HeaderFooterContent<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 2790
-          }
-        ],
-        "key.bodylength" : 107,
-        "key.bodyoffset" : 2821,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooter<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyHeaderFooter where<\/syntaxtype.keyword> Content : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 132,
-        "key.name" : "HeaderFooter",
-        "key.namelength" : 12,
-        "key.nameoffset" : 2807,
-        "key.offset" : 2797,
-        "key.parsed_declaration" : "public extension HeaderFooter",
-        "key.parsed_scope.end" : 111,
-        "key.parsed_scope.start" : 106,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.attributes" : [
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 1358
+              },
               {
                 "key.attribute" : "source.decl.attribute.available",
-                "key.length" : 46,
-                "key.offset" : 2826
+                "key.length" : 44,
+                "key.offset" : 1309
               }
             ],
-            "key.bodylength" : 26,
-            "key.bodyoffset" : 2900,
+            "key.bodylength" : 61,
+            "key.bodyoffset" : 1461,
             "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 50,
-            "key.name" : "element",
-            "key.namelength" : 7,
-            "key.nameoffset" : 2881,
-            "key.offset" : 2877,
-            "key.typename" : "Content"
-          }
-        ],
-        "key.typename" : "HeaderFooter.Type",
-        "key.typeusr" : "$s10ListableUI12HeaderFooterVyxGmD",
-        "key.usr" : "s:10ListableUI12HeaderFooterV"
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct Content<\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 2931
-          }
-        ],
-        "key.bodylength" : 183,
-        "key.bodyoffset" : 2957,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Content.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Content<\/decl.name><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 203,
-        "key.name" : "Content",
-        "key.namelength" : 7,
-        "key.nameoffset" : 2948,
-        "key.offset" : 2938,
-        "key.parsed_declaration" : "public extension Content",
-        "key.parsed_scope.end" : 118,
-        "key.parsed_scope.start" : 113,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.available",
-                "key.length" : 101,
-                "key.offset" : 2962
-              }
+            "key.kind" : "source.lang.swift.decl.function.method.static",
+            "key.length" : 158,
+            "key.name" : "list(_:)",
+            "key.namelength" : 70,
+            "key.nameoffset" : 1377,
+            "key.offset" : 1365,
+            "key.substructure" : [
+
             ],
-            "key.bodylength" : 26,
-            "key.bodyoffset" : 3112,
-            "key.internal_diagnostic" : "Unavailable in the current compilation context.",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 71,
-            "key.name" : "selectionMode",
-            "key.namelength" : 13,
-            "key.nameoffset" : 3072,
-            "key.offset" : 3068,
-            "key.typename" : "Behavior.SelectionMode"
+            "key.typename" : "Self"
           }
         ],
-        "key.typename" : "Content.Type",
-        "key.typeusr" : "$s10ListableUI7ContentVmD",
-        "key.usr" : "s:10ListableUI7ContentV"
+        "key.typename" : "LayoutDescription.Type",
+        "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD",
+        "key.usr" : "s:10ListableUI17LayoutDescriptionV"
       }
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 3955,
+    "key.length" : 4028,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -5904,50 +5701,50 @@
             "key.offset" : 92
           }
         ],
-        "key.bodylength" : 928,
+        "key.bodylength" : 1000,
         "key.bodyoffset" : 145,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 975,
+        "key.length" : 1047,
         "key.name" : "Item",
         "key.namelength" : 4,
         "key.nameoffset" : 109,
         "key.offset" : 99,
         "key.parsed_declaration" : "public extension Item where Content == EmbeddedList",
-        "key.parsed_scope.end" : 42,
+        "key.parsed_scope.end" : 46,
         "key.parsed_scope.start" : 9,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "static func list<Identifier>(_ identifier: Identifier<\/Type>, sizing: EmbeddedList<\/Type>.Sizing<\/Type>, build: ListProperties<\/Type>.Build<\/Type>) -> Item<\/Type><EmbeddedList<\/Type>> where Identifier : Hashable<\/Type><\/Declaration>",
-            "key.bodylength" : 183,
-            "key.bodyoffset" : 888,
+            "key.bodylength" : 254,
+            "key.bodyoffset" : 889,
             "key.doc.column" : 17,
-            "key.doc.comment" : "Creates an `Item` which can be used to embed a list inside another list,\nfor example if you'd like to place a horizontally scrollable list within a vertically scrolling\nlist, or vice versa.\n\n```\nsection += .list(\n    \"my-identifier\",\n    sizing: .fixed(height: 200)\n) { list in\n\n    list.layout = .list {\n        $0.direction = .horizontal\n    }\n\n    list += Section(\"section-id\") {\n        ...\n    }\n}\n```",
+            "key.doc.comment" : "Creates an `Item` which can be used to embed a list inside another list,\nfor example if you'd like to place a horizontally scrollable list within a vertically scrolling\nlist, or vice versa.\n\n```\nsection += .list(\n    \"my-identifier\",\n    sizing: .fixed(height: 200)\n) { list in\n\n    list.layout = .table {\n        $0.direction = .horizontal\n    }\n\n    list += Section(\"section-id\") {\n        ...\n    }\n}\n```",
             "key.doc.declaration" : "static func list(_ identifier: Identifier, sizing: EmbeddedList.Sizing, build: ListProperties.Build) -> Item where Identifier : Hashable",
             "key.doc.discussion" : [
               {
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
-            "key.doc.full_as_xml" : "list(_:sizing:build:)<\/Name>s:10ListableUI4ItemVA2A12EmbeddedListVRszrlE4list_6sizing5buildACyAEGqd___AE6SizingOyAA0E10PropertiesVzXEtSHRd__lFZ<\/USR>static func list<Identifier>(_ identifier: Identifier, sizing: EmbeddedList.Sizing, build: ListProperties.Build) -> Item<EmbeddedList> where Identifier : Hashable<\/Declaration>Creates an Item<\/codeVoice> which can be used to embed a list inside another list, for example if you’d like to place a horizontally scrollable list within a vertically scrolling list, or vice versa.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.doc.full_as_xml" : "list(_:sizing:build:)<\/Name>s:10ListableUI4ItemVA2A12EmbeddedListVRszrlE4list_6sizing5buildACyAEGqd___AE6SizingOyAA0E10PropertiesVzXEtSHRd__lFZ<\/USR>static func list<Identifier>(_ identifier: Identifier, sizing: EmbeddedList.Sizing, build: ListProperties.Build) -> Item<EmbeddedList> where Identifier : Hashable<\/Declaration>Creates an Item<\/codeVoice> which can be used to embed a list inside another list, for example if you’d like to place a horizontally scrollable list within a vertically scrolling list, or vice versa.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 30,
             "key.doc.name" : "list(_:sizing:build:)",
             "key.doc.type" : "Function",
-            "key.doclength" : 552,
+            "key.doclength" : 553,
             "key.docoffset" : 150,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> list<\/decl.name><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: EmbeddedList<\/ref.struct>.Sizing<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: ListProperties<\/ref.struct>.Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Item<\/ref.struct><EmbeddedList<\/ref.struct>><\/decl.function.returntype> where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 366,
+            "key.length" : 437,
             "key.name" : "list(_:sizing:build:)",
             "key.namelength" : 142,
-            "key.nameoffset" : 718,
-            "key.offset" : 706,
+            "key.nameoffset" : 719,
+            "key.offset" : 707,
             "key.parsed_declaration" : "static func list(\n    _ identifier : Identifier,\n    sizing : EmbeddedList.Sizing,\n    build : ListProperties.Build\n) -> Item",
-            "key.parsed_scope.end" : 41,
+            "key.parsed_scope.end" : 45,
             "key.parsed_scope.start" : 30,
             "key.substructure" : [
               {
@@ -5956,10 +5753,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 8,
-                    "key.offset" : 734
+                    "key.offset" : 735
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
                 "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -5970,8 +5767,8 @@
                 "key.length" : 19,
                 "key.name" : "Identifier",
                 "key.namelength" : 10,
-                "key.nameoffset" : 723,
-                "key.offset" : 723,
+                "key.nameoffset" : 724,
+                "key.offset" : 724,
                 "key.parsed_declaration" : "static func listEmbeddedList<\/Name>s:10ListableUI12EmbeddedListV<\/USR>public struct EmbeddedList : ItemContent<\/Declaration>Describes item content which can be used to embed a list inside another list, for example if you’d like to place a horizontally scrollable list within a vertically scrolling list, or vice versa.<\/Para><\/Abstract>You rarely use this type directly. Instead, use the static .list<\/codeVoice> function on Item<\/codeVoice>.<\/Para>Internal TODO: This should use a coordinator to manage the scroll position of the contained list during cell reuse.<\/Para><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 54,
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
+        "key.doc.full_as_xml" : "EmbeddedList<\/Name>s:10ListableUI12EmbeddedListV<\/USR>public struct EmbeddedList : ItemContent<\/Declaration>Describes item content which can be used to embed a list inside another list, for example if you’d like to place a horizontally scrollable list within a vertically scrolling list, or vice versa.<\/Para><\/Abstract>You rarely use this type directly. Instead, use the static .list<\/codeVoice> function on Item<\/codeVoice>.<\/Para>Internal TODO: This should use a coordinator to manage the scroll position of the contained list during cell reuse.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 58,
         "key.doc.name" : "EmbeddedList",
         "key.doc.type" : "Class",
         "key.doclength" : 434,
-        "key.docoffset" : 1077,
+        "key.docoffset" : 1149,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 11,
-            "key.offset" : 1540
+            "key.offset" : 1612
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> EmbeddedList<\/decl.name> : ItemContent<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -6034,14 +5831,14 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 1447,
+        "key.length" : 1448,
         "key.name" : "EmbeddedList",
         "key.namelength" : 12,
-        "key.nameoffset" : 1525,
-        "key.offset" : 1518,
+        "key.nameoffset" : 1597,
+        "key.offset" : 1590,
         "key.parsed_declaration" : "public struct EmbeddedList : ItemContent",
-        "key.parsed_scope.end" : 110,
-        "key.parsed_scope.start" : 54,
+        "key.parsed_scope.end" : 114,
+        "key.parsed_scope.start" : 58,
         "key.substructure" : [
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -6049,7 +5846,7 @@
             "key.name" : "MARK: Public Properties",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 1568
+            "key.offset" : 1640
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -6058,20 +5855,20 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1608
+                "key.offset" : 1680
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> properties<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
             "key.name" : "properties",
             "key.namelength" : 10,
-            "key.nameoffset" : 1619,
-            "key.offset" : 1615,
+            "key.nameoffset" : 1691,
+            "key.offset" : 1687,
             "key.parsed_declaration" : "public var properties : ListProperties",
-            "key.parsed_scope.end" : 60,
-            "key.parsed_scope.start" : 60,
+            "key.parsed_scope.end" : 64,
+            "key.parsed_scope.start" : 64,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "ListProperties",
             "key.typeusr" : "$s10ListableUI14ListPropertiesVD",
@@ -6084,20 +5881,20 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1651
+                "key.offset" : 1723
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentIdentifier<\/decl.name>: AnyHashable<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 35,
             "key.name" : "contentIdentifier",
             "key.namelength" : 17,
-            "key.nameoffset" : 1662,
-            "key.offset" : 1658,
+            "key.nameoffset" : 1734,
+            "key.offset" : 1730,
             "key.parsed_declaration" : "public var contentIdentifier : AnyHashable",
-            "key.parsed_scope.end" : 61,
-            "key.parsed_scope.start" : 61,
+            "key.parsed_scope.end" : 65,
+            "key.parsed_scope.start" : 65,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "AnyHashable",
             "key.typeusr" : "$ss11AnyHashableVD",
@@ -6109,7 +5906,7 @@
             "key.name" : "MARK: Initialization",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 1713
+            "key.offset" : 1785
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -6118,22 +5915,22 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1750
+                "key.offset" : 1822
               }
             ],
-            "key.bodylength" : 500,
-            "key.bodyoffset" : 1843,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.bodylength" : 501,
+            "key.bodyoffset" : 1915,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(identifier<\/decl.var.parameter.argument_label>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: ListProperties<\/ref.struct>.Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 587,
+            "key.length" : 588,
             "key.name" : "init(identifier:build:)",
             "key.namelength" : 80,
-            "key.nameoffset" : 1757,
-            "key.offset" : 1757,
+            "key.nameoffset" : 1829,
+            "key.offset" : 1829,
             "key.parsed_declaration" : "public init(identifier : Identifier, build : ListProperties.Build)",
-            "key.parsed_scope.end" : 84,
-            "key.parsed_scope.start" : 67,
+            "key.parsed_scope.end" : 88,
+            "key.parsed_scope.start" : 71,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Identifier : Hashable<\/Type><\/Declaration>",
@@ -6141,10 +5938,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 8,
-                    "key.offset" : 1773
+                    "key.offset" : 1845
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
                 "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -6155,11 +5952,11 @@
                 "key.length" : 19,
                 "key.name" : "Identifier",
                 "key.namelength" : 10,
-                "key.nameoffset" : 1762,
-                "key.offset" : 1762,
+                "key.nameoffset" : 1834,
+                "key.offset" : 1834,
                 "key.parsed_declaration" : "public initContentView<\/Name>s:10ListableUI11ItemContentP0D4ViewQa<\/USR>associatedtype ContentView : UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "ContentView<\/Name>s:10ListableUI11ItemContentP0D4ViewQa<\/USR>associatedtype ContentView : UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 121,
             "key.doc.name" : "ContentView",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> EmbeddedList<\/ref.struct>.ContentView<\/decl.name> = ListView<\/ref.class><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 32,
             "key.name" : "ContentView",
             "key.namelength" : 11,
-            "key.nameoffset" : 2419,
-            "key.offset" : 2409,
+            "key.nameoffset" : 2492,
+            "key.offset" : 2482,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI11ItemContentP0D4ViewQa"
               }
             ],
             "key.parsed_declaration" : "public typealias ContentView = ListView",
-            "key.parsed_scope.end" : 90,
-            "key.parsed_scope.start" : 90,
+            "key.parsed_scope.end" : 94,
+            "key.parsed_scope.start" : 94,
             "key.typename" : "ListView.Type",
             "key.typeusr" : "$s10ListableUI8ListViewCmD",
             "key.usr" : "s:10ListableUI11ItemContentP0D4ViewQa"
@@ -6226,11 +6023,11 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2451
+                "key.offset" : 2524
               }
             ],
             "key.bodylength" : 50,
-            "key.bodyoffset" : 2500,
+            "key.bodyoffset" : 2573,
             "key.doc.column" : 9,
             "key.doc.declaration" : "var identifier: Identifier { get }",
             "key.doc.discussion" : [
@@ -6244,27 +6041,27 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp<\/USR>var identifier: Identifier<Self> { get }<\/Declaration>Identifies the content across updates to the list. This value must remain the same, otherwise the content will be considered a new item, and the old one removed from the list.<\/Para><\/Abstract>Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier.<\/Para>If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp<\/USR>var identifier: Identifier<Self> { get }<\/Declaration>Identifies the content across updates to the list. This value must remain the same, otherwise the content will be considered a new item, and the old one removed from the list.<\/Para><\/Abstract>Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier.<\/Para>If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 54,
             "key.doc.name" : "identifier",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.class><EmbeddedList<\/ref.struct>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 93,
             "key.name" : "identifier",
             "key.namelength" : 10,
-            "key.nameoffset" : 2462,
-            "key.offset" : 2458,
+            "key.nameoffset" : 2535,
+            "key.offset" : 2531,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp"
               }
             ],
             "key.parsed_declaration" : "public var identifier: Identifier",
-            "key.parsed_scope.end" : 94,
-            "key.parsed_scope.start" : 92,
+            "key.parsed_scope.end" : 98,
+            "key.parsed_scope.start" : 96,
             "key.typename" : "Identifier",
             "key.typeusr" : "$s10ListableUI10IdentifierCyAA12EmbeddedListVGD",
             "key.usr" : "s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp"
@@ -6276,11 +6073,11 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2561
+                "key.offset" : 2634
               }
             ],
             "key.bodylength" : 60,
-            "key.bodyoffset" : 2678,
+            "key.bodyoffset" : 2751,
             "key.doc.column" : 10,
             "key.doc.declaration" : "func apply(to views: ItemContentViews, for reason: ApplyReason, with info: ApplyItemContentInfo)",
             "key.doc.discussion" : [
@@ -6291,27 +6088,27 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "apply(to:for:with:)<\/Name>s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF<\/USR>func apply(to views: ItemContentViews<Self>, for reason: ApplyReason, with info: ApplyItemContentInfo)<\/Declaration>Called when rendering the content. This is where you should push data from your content into the passed in views.<\/Para><\/Abstract>Do not retain a reference to the passed in views – they are reused by the list.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "apply(to:for:with:)<\/Name>s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF<\/USR>func apply(to views: ItemContentViews<Self>, for reason: ApplyReason, with info: ApplyItemContentInfo)<\/Declaration>Called when rendering the content. This is where you should push data from your content into the passed in views.<\/Para><\/Abstract>Do not retain a reference to the passed in views – they are reused by the list.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 74,
             "key.doc.name" : "apply(to:for:with:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: ItemContentViews<\/ref.struct><`Self`><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 171,
             "key.name" : "apply(to:for:with:)",
             "key.namelength" : 99,
-            "key.nameoffset" : 2573,
-            "key.offset" : 2568,
+            "key.nameoffset" : 2646,
+            "key.offset" : 2641,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF"
               }
             ],
             "key.parsed_declaration" : "public func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo)",
-            "key.parsed_scope.end" : 99,
-            "key.parsed_scope.start" : 96,
+            "key.parsed_scope.end" : 103,
+            "key.parsed_scope.start" : 100,
             "key.substructure" : [
 
             ],
@@ -6326,11 +6123,11 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2749
+                "key.offset" : 2822
               }
             ],
             "key.bodylength" : 26,
-            "key.bodyoffset" : 2811,
+            "key.bodyoffset" : 2884,
             "key.doc.column" : 10,
             "key.doc.declaration" : "func isEquivalent(to other: Self) -> Bool",
             "key.doc.discussion" : [
@@ -6344,27 +6141,27 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Return false if the content’ changed based on the old value passed into the function.<\/Para><\/Abstract>If this method returns false, the row representing the content is reloaded.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method when ItemContent <\/codeVoice> conforms to Equatable<\/codeVoice> which returns self == other<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Return false if the content’ changed based on the old value passed into the function.<\/Para><\/Abstract>If this method returns false, the row representing the content is reloaded.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method when ItemContent <\/codeVoice> conforms to Equatable<\/codeVoice> which returns self == other<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 105,
             "key.doc.name" : "isEquivalent(to:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: EmbeddedList<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 82,
             "key.name" : "isEquivalent(to:)",
             "key.namelength" : 36,
-            "key.nameoffset" : 2761,
-            "key.offset" : 2756,
+            "key.nameoffset" : 2834,
+            "key.offset" : 2829,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF"
               }
             ],
             "key.parsed_declaration" : "public func isEquivalent(to other: EmbeddedList) -> Bool",
-            "key.parsed_scope.end" : 104,
-            "key.parsed_scope.start" : 101,
+            "key.parsed_scope.end" : 108,
+            "key.parsed_scope.start" : 105,
             "key.substructure" : [
 
             ],
@@ -6379,11 +6176,11 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2848
+                "key.offset" : 2921
               }
             ],
             "key.bodylength" : 36,
-            "key.bodyoffset" : 2926,
+            "key.bodyoffset" : 2999,
             "key.doc.column" : 17,
             "key.doc.declaration" : "static func createReusableContentView(frame: CGRect) -> ContentView",
             "key.doc.discussion" : [
@@ -6394,27 +6191,27 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 130,
             "key.doc.name" : "createReusableContentView(frame:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListView<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 108,
             "key.name" : "createReusableContentView(frame:)",
             "key.namelength" : 41,
-            "key.nameoffset" : 2867,
-            "key.offset" : 2855,
+            "key.nameoffset" : 2940,
+            "key.offset" : 2928,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ"
               }
             ],
             "key.parsed_declaration" : "public static func createReusableContentView(frame : CGRect) -> ListView",
-            "key.parsed_scope.end" : 109,
-            "key.parsed_scope.start" : 106,
+            "key.parsed_scope.end" : 113,
+            "key.parsed_scope.start" : 110,
             "key.substructure" : [
 
             ],
@@ -6430,7 +6227,7 @@
       {
         "key.annotated_decl" : "public struct EmbeddedList : ItemContent<\/Type><\/Declaration>",
         "key.bodylength" : 961,
-        "key.bodyoffset" : 2992,
+        "key.bodyoffset" : 3065,
         "key.doc.column" : 15,
         "key.doc.declaration" : "public struct EmbeddedList : ItemContent",
         "key.doc.discussion" : [
@@ -6441,22 +6238,22 @@
             "Para" : "Internal TODO: This should use a coordinator to manage the scroll position of the contained list during cell reuse."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
-        "key.doc.full_as_xml" : "EmbeddedList<\/Name>s:10ListableUI12EmbeddedListV<\/USR>public struct EmbeddedList : ItemContent<\/Declaration>Describes item content which can be used to embed a list inside another list, for example if you’d like to place a horizontally scrollable list within a vertically scrolling list, or vice versa.<\/Para><\/Abstract>You rarely use this type directly. Instead, use the static .list<\/codeVoice> function on Item<\/codeVoice>.<\/Para>Internal TODO: This should use a coordinator to manage the scroll position of the contained list during cell reuse.<\/Para><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 54,
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
+        "key.doc.full_as_xml" : "EmbeddedList<\/Name>s:10ListableUI12EmbeddedListV<\/USR>public struct EmbeddedList : ItemContent<\/Declaration>Describes item content which can be used to embed a list inside another list, for example if you’d like to place a horizontally scrollable list within a vertically scrolling list, or vice versa.<\/Para><\/Abstract>You rarely use this type directly. Instead, use the static .list<\/codeVoice> function on Item<\/codeVoice>.<\/Para>Internal TODO: This should use a coordinator to manage the scroll position of the contained list during cell reuse.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 58,
         "key.doc.name" : "EmbeddedList",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> EmbeddedList<\/decl.name> : ItemContent<\/ref.protocol><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 986,
         "key.name" : "EmbeddedList",
         "key.namelength" : 12,
-        "key.nameoffset" : 2978,
-        "key.offset" : 2968,
+        "key.nameoffset" : 3051,
+        "key.offset" : 3041,
         "key.parsed_declaration" : "extension EmbeddedList",
-        "key.parsed_scope.end" : 136,
-        "key.parsed_scope.start" : 113,
+        "key.parsed_scope.end" : 140,
+        "key.parsed_scope.start" : 117,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -6465,29 +6262,29 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 3233
+                "key.offset" : 3306
               }
             ],
             "key.bodylength" : 682,
-            "key.bodyoffset" : 3269,
+            "key.bodyoffset" : 3342,
             "key.doc.column" : 17,
             "key.doc.comment" : "How you specify sizing for an embedded list. The surface area\nof this `Sizing` enum is intentionally reduced from the standard `Sizing`\nenum, because several of those values do not make sense for embedded lists.",
             "key.doc.declaration" : "public enum Sizing : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
-            "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI12EmbeddedListV6SizingO<\/USR>public enum Sizing : Equatable<\/Declaration>How you specify sizing for an embedded list. The surface area of this Sizing<\/codeVoice> enum is intentionally reduced from the standard Sizing<\/codeVoice> enum, because several of those values do not make sense for embedded lists.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 118,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI12EmbeddedListV6SizingO<\/USR>public enum Sizing : Equatable<\/Declaration>How you specify sizing for an embedded list. The surface area of this Sizing<\/codeVoice> enum is intentionally reduced from the standard Sizing<\/codeVoice> enum, because several of those values do not make sense for embedded lists.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 122,
             "key.doc.name" : "Sizing",
             "key.doc.type" : "Other",
             "key.doclength" : 232,
-            "key.docoffset" : 2997,
+            "key.docoffset" : 3070,
             "key.elements" : [
               {
                 "key.kind" : "source.lang.swift.structure.elem.typeref",
                 "key.length" : 9,
-                "key.offset" : 3254
+                "key.offset" : 3327
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sizing<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -6498,18 +6295,18 @@
             "key.length" : 712,
             "key.name" : "Sizing",
             "key.namelength" : 6,
-            "key.nameoffset" : 3245,
-            "key.offset" : 3240,
+            "key.nameoffset" : 3318,
+            "key.offset" : 3313,
             "key.parsed_declaration" : "public enum Sizing : Equatable",
-            "key.parsed_scope.end" : 135,
-            "key.parsed_scope.start" : 118,
+            "key.parsed_scope.end" : 139,
+            "key.parsed_scope.start" : 122,
             "key.substructure" : [
               {
                 "key.kind" : "source.lang.swift.decl.enumcase",
                 "key.length" : 14,
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 3352,
+                "key.offset" : 3425,
                 "key.substructure" : [
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -6517,24 +6314,24 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "Falls back to the default sizing of `Item`s in the list view.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
-                    "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI12EmbeddedListV6SizingO7defaultyA2EmF<\/USR><\/Declaration>Falls back to the default sizing of Item<\/codeVoice>s in the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                    "key.doc.line" : 121,
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
+                    "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI12EmbeddedListV6SizingO7defaultyA2EmF<\/USR><\/Declaration>Falls back to the default sizing of Item<\/codeVoice>s in the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.line" : 125,
                     "key.doc.name" : "default",
                     "key.doc.type" : "Other",
                     "key.doclength" : 66,
-                    "key.docoffset" : 3278,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+                    "key.docoffset" : 3351,
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> `default`<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 9,
                     "key.name" : "default",
                     "key.namelength" : 7,
-                    "key.nameoffset" : 3357,
-                    "key.offset" : 3357,
+                    "key.nameoffset" : 3430,
+                    "key.offset" : 3430,
                     "key.parsed_declaration" : "case `default`",
-                    "key.parsed_scope.end" : 121,
-                    "key.parsed_scope.start" : 121,
+                    "key.parsed_scope.end" : 125,
+                    "key.parsed_scope.start" : 125,
                     "key.typename" : "(EmbeddedList.Sizing.Type) -> EmbeddedList.Sizing",
                     "key.typeusr" : "$sy10ListableUI12EmbeddedListV6SizingOAEmcD",
                     "key.usr" : "s:10ListableUI12EmbeddedListV6SizingO7defaultyA2EmF"
@@ -6546,7 +6343,7 @@
                 "key.length" : 56,
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 3663,
+                "key.offset" : 3736,
                 "key.substructure" : [
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -6559,24 +6356,24 @@
                         "Para" : "Note: Depending on the list layout type, only one of width or height may be used. Eg, for list layouts, vertical lists only use the height, and horizontal lists only use the width."
                       }
                     ],
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
-                    "key.doc.full_as_xml" : "fixed(width:height:)<\/Name>s:10ListableUI12EmbeddedListV6SizingO5fixedyAE12CoreGraphics7CGFloatV_AItcAEmF<\/USR><\/Declaration>A fixed size item with the given width or height.<\/Para><\/Abstract>Note: Depending on the list layout type, only one of width or height may be used. Eg, for list layouts, vertical lists only use the height, and horizontal lists only use the width.<\/Para><\/Discussion><\/CommentParts><\/Other>",
-                    "key.doc.line" : 127,
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
+                    "key.doc.full_as_xml" : "fixed(width:height:)<\/Name>s:10ListableUI12EmbeddedListV6SizingO5fixedyAE12CoreGraphics7CGFloatV_AItcAEmF<\/USR><\/Declaration>A fixed size item with the given width or height.<\/Para><\/Abstract>Note: Depending on the list layout type, only one of width or height may be used. Eg, for list layouts, vertical lists only use the height, and horizontal lists only use the width.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+                    "key.doc.line" : 131,
                     "key.doc.name" : "fixed(width:height:)",
                     "key.doc.type" : "Other",
                     "key.doclength" : 271,
-                    "key.docoffset" : 3384,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+                    "key.docoffset" : 3457,
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 51,
                     "key.name" : "fixed(width:height:)",
                     "key.namelength" : 51,
-                    "key.nameoffset" : 3668,
-                    "key.offset" : 3668,
+                    "key.nameoffset" : 3741,
+                    "key.offset" : 3741,
                     "key.parsed_declaration" : "case fixed(width: CGFloat = 0.0, height : CGFloat = 0.0)",
-                    "key.parsed_scope.end" : 127,
-                    "key.parsed_scope.start" : 127,
+                    "key.parsed_scope.end" : 131,
+                    "key.parsed_scope.start" : 131,
                     "key.substructure" : [
 
                     ],
@@ -6590,18 +6387,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var toStandardSizing: ListableUI.Sizing<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 166,
-                "key.bodyoffset" : 3779,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/EmbeddedList.swift",
+                "key.bodyoffset" : 3852,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/EmbeddedList.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toStandardSizing<\/decl.name>: ListableUI.Sizing<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 209,
                 "key.name" : "toStandardSizing",
                 "key.namelength" : 16,
-                "key.nameoffset" : 3741,
-                "key.offset" : 3737,
+                "key.nameoffset" : 3814,
+                "key.offset" : 3810,
                 "key.parsed_declaration" : "var toStandardSizing : ListableUI.Sizing",
-                "key.parsed_scope.end" : 134,
-                "key.parsed_scope.start" : 129,
+                "key.parsed_scope.end" : 138,
+                "key.parsed_scope.start" : 133,
                 "key.typename" : "Sizing",
                 "key.typeusr" : "$s10ListableUI6SizingOD",
                 "key.usr" : "s:10ListableUI12EmbeddedListV6SizingO010toStandardE0AaDOvp"
@@ -6619,9 +6416,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 653,
+    "key.length" : 657,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -6634,7 +6431,7 @@
             "key.offset" : 114
           }
         ],
-        "key.bodylength" : 85,
+        "key.bodylength" : 87,
         "key.bodyoffset" : 174,
         "key.elements" : [
           {
@@ -6643,7 +6440,7 @@
             "key.offset" : 148
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyHeaderFooter<\/decl.name> : AnyHeaderFooter_Internal<\/ref.protocol><\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -6651,7 +6448,7 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.protocol",
-        "key.length" : 139,
+        "key.length" : 141,
         "key.name" : "AnyHeaderFooter",
         "key.namelength" : 15,
         "key.nameoffset" : 130,
@@ -6665,7 +6462,7 @@
             "key.annotated_decl" : "var sizing: Sizing<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 9,
             "key.bodyoffset" : 200,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -6683,29 +6480,29 @@
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var layout: HeaderFooterLayout<\/Type> { get set }<\/Declaration>",
+            "key.annotated_decl" : "var layouts: HeaderFooterLayouts<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 9,
-            "key.bodyoffset" : 248,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layout<\/decl.name>: HeaderFooterLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.bodyoffset" : 250,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layouts<\/decl.name>: HeaderFooterLayouts<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 43,
-            "key.name" : "layout",
-            "key.namelength" : 6,
+            "key.length" : 45,
+            "key.name" : "layouts",
+            "key.namelength" : 7,
             "key.nameoffset" : 219,
             "key.offset" : 215,
             "key.overrides" : [
               {
-                "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP6layoutAA0dE6LayoutVvp"
+                "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP7layoutsAA0dE7LayoutsVvp"
               }
             ],
-            "key.parsed_declaration" : "var layout : HeaderFooterLayout",
+            "key.parsed_declaration" : "var layouts : HeaderFooterLayouts",
             "key.parsed_scope.end" : 14,
             "key.parsed_scope.start" : 14,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "HeaderFooterLayout",
-            "key.typeusr" : "$s10ListableUI18HeaderFooterLayoutVD",
-            "key.usr" : "s:10ListableUI15AnyHeaderFooterP6layoutAA0dE6LayoutVvp"
+            "key.typename" : "HeaderFooterLayouts",
+            "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVD",
+            "key.usr" : "s:10ListableUI15AnyHeaderFooterP7layoutsAA0dE7LayoutsVvp"
           }
         ],
         "key.typename" : "AnyHeaderFooter.Protocol",
@@ -6719,54 +6516,54 @@
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 263
+            "key.offset" : 265
           }
         ],
-        "key.bodylength" : 346,
-        "key.bodyoffset" : 305,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
+        "key.bodylength" : 348,
+        "key.bodyoffset" : 307,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyHeaderFooter_Internal<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.protocol",
-        "key.length" : 382,
+        "key.length" : 384,
         "key.name" : "AnyHeaderFooter_Internal",
         "key.namelength" : 24,
-        "key.nameoffset" : 279,
-        "key.offset" : 270,
+        "key.nameoffset" : 281,
+        "key.offset" : 272,
         "key.parsed_declaration" : "public protocol AnyHeaderFooter_Internal",
         "key.parsed_scope.end" : 31,
         "key.parsed_scope.start" : 18,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var layout: HeaderFooterLayout<\/Type> { get }<\/Declaration>",
+            "key.annotated_decl" : "var layouts: HeaderFooterLayouts<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
-            "key.bodyoffset" : 343,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layout<\/decl.name>: HeaderFooterLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.bodyoffset" : 347,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layouts<\/decl.name>: HeaderFooterLayouts<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 39,
-            "key.name" : "layout",
-            "key.namelength" : 6,
-            "key.nameoffset" : 314,
-            "key.offset" : 310,
-            "key.parsed_declaration" : "var layout : HeaderFooterLayout",
+            "key.length" : 41,
+            "key.name" : "layouts",
+            "key.namelength" : 7,
+            "key.nameoffset" : 316,
+            "key.offset" : 312,
+            "key.parsed_declaration" : "var layouts : HeaderFooterLayouts",
             "key.parsed_scope.end" : 20,
             "key.parsed_scope.start" : 20,
-            "key.typename" : "HeaderFooterLayout",
-            "key.typeusr" : "$s10ListableUI18HeaderFooterLayoutVD",
-            "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP6layoutAA0dE6LayoutVvp"
+            "key.typename" : "HeaderFooterLayouts",
+            "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVD",
+            "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP7layoutsAA0dE7LayoutsVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func apply(to headerFooterView: UIView<\/Type>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> headerFooterView<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 138,
             "key.name" : "apply(to:for:with:)",
             "key.namelength" : 133,
-            "key.nameoffset" : 364,
-            "key.offset" : 359,
+            "key.nameoffset" : 368,
+            "key.offset" : 363,
             "key.parsed_declaration" : "func apply(\n    to headerFooterView : UIView,\n    for reason : ApplyReason,\n    with info : ApplyHeaderFooterContentInfo\n)",
             "key.parsed_scope.end" : 22,
             "key.parsed_scope.start" : 22,
@@ -6780,14 +6577,14 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func anyIsEquivalent(to other: AnyHeaderFooter<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> anyIsEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 56,
             "key.name" : "anyIsEquivalent(to:)",
             "key.namelength" : 43,
-            "key.nameoffset" : 512,
-            "key.offset" : 507,
+            "key.nameoffset" : 516,
+            "key.offset" : 511,
             "key.parsed_declaration" : "func anyIsEquivalent(to other : AnyHeaderFooter) -> Bool",
             "key.parsed_scope.end" : 28,
             "key.parsed_scope.start" : 28,
@@ -6801,14 +6598,14 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func newPresentationHeaderFooterState(performsContentCallbacks: Bool<\/Type>) -> Any<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/AnyHeaderFooter.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> newPresentationHeaderFooterState<\/decl.name>(performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Any<\/syntaxtype.keyword><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 77,
             "key.name" : "newPresentationHeaderFooterState(performsContentCallbacks:)",
             "key.namelength" : 65,
-            "key.nameoffset" : 578,
-            "key.offset" : 573,
+            "key.nameoffset" : 582,
+            "key.offset" : 577,
             "key.parsed_declaration" : "func newPresentationHeaderFooterState(performsContentCallbacks : Bool) -> Any",
             "key.parsed_scope.end" : 30,
             "key.parsed_scope.start" : 30,
@@ -6827,9 +6624,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 2647,
+    "key.length" : 2640,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -6842,7 +6639,7 @@
             "key.offset" : 91
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Header<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> = HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>> where<\/syntaxtype.keyword> Content : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.typealias>",
         "key.kind" : "source.lang.swift.decl.typealias",
         "key.length" : 69,
@@ -6863,7 +6660,7 @@
                 "key.offset" : 123
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -6903,7 +6700,7 @@
             "key.offset" : 168
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Footer<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> = HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>> where<\/syntaxtype.keyword> Content : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.typealias>",
         "key.kind" : "source.lang.swift.decl.typealias",
         "key.length" : 69,
@@ -6924,7 +6721,7 @@
                 "key.offset" : 200
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -6964,7 +6761,7 @@
             "key.offset" : 247
           }
         ],
-        "key.bodylength" : 2099,
+        "key.bodylength" : 2092,
         "key.bodyoffset" : 322,
         "key.elements" : [
           {
@@ -6973,7 +6770,7 @@
             "key.offset" : 305
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooter<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyHeaderFooter<\/ref.protocol> where<\/syntaxtype.keyword> Content : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -6981,7 +6778,7 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 2168,
+        "key.length" : 2161,
         "key.name" : "HeaderFooter",
         "key.namelength" : 12,
         "key.nameoffset" : 261,
@@ -6999,7 +6796,7 @@
                 "key.offset" : 282
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -7029,7 +6826,7 @@
                 "key.offset" : 327
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -7055,7 +6852,7 @@
                 "key.offset" : 365
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -7078,7 +6875,7 @@
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var layout: HeaderFooterLayout<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public var layouts: HeaderFooterLayouts<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
@@ -7086,29 +6883,29 @@
                 "key.offset" : 396
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: HeaderFooterLayout<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: HeaderFooterLayouts<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 31,
-            "key.name" : "layout",
-            "key.namelength" : 6,
+            "key.length" : 33,
+            "key.name" : "layouts",
+            "key.namelength" : 7,
             "key.nameoffset" : 407,
             "key.offset" : 403,
             "key.overrides" : [
               {
-                "key.usr" : "s:10ListableUI15AnyHeaderFooterP6layoutAA0dE6LayoutVvp"
+                "key.usr" : "s:10ListableUI15AnyHeaderFooterP7layoutsAA0dE7LayoutsVvp"
               },
               {
-                "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP6layoutAA0dE6LayoutVvp"
+                "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP7layoutsAA0dE7LayoutsVvp"
               }
             ],
-            "key.parsed_declaration" : "public var layout : HeaderFooterLayout",
+            "key.parsed_declaration" : "public var layouts : HeaderFooterLayouts",
             "key.parsed_scope.end" : 18,
             "key.parsed_scope.start" : 18,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "HeaderFooterLayout",
-            "key.typeusr" : "$s10ListableUI18HeaderFooterLayoutVD",
-            "key.usr" : "s:10ListableUI12HeaderFooterV6layoutAA0cD6LayoutVvp"
+            "key.typename" : "HeaderFooterLayouts",
+            "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVD",
+            "key.usr" : "s:10ListableUI12HeaderFooterV7layoutsAA0cD7LayoutsVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -7117,17 +6914,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 444
+                "key.offset" : 446
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><Content>.OnTap<\/decl.name> = (Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 33,
             "key.name" : "OnTap",
             "key.namelength" : 5,
-            "key.nameoffset" : 461,
-            "key.offset" : 451,
+            "key.nameoffset" : 463,
+            "key.offset" : 453,
             "key.parsed_declaration" : "public typealias OnTap = (Content) -> ()",
             "key.parsed_scope.end" : 20,
             "key.parsed_scope.start" : 20,
@@ -7142,17 +6939,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 489
+                "key.offset" : 491
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onTap<\/decl.name>: OnTap<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 18,
             "key.name" : "onTap",
             "key.namelength" : 5,
-            "key.nameoffset" : 500,
-            "key.offset" : 496,
+            "key.nameoffset" : 502,
+            "key.offset" : 498,
             "key.parsed_declaration" : "public var onTap : OnTap?",
             "key.parsed_scope.end" : 21,
             "key.parsed_scope.start" : 21,
@@ -7168,17 +6965,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 524
+                "key.offset" : 526
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
             "key.name" : "debuggingIdentifier",
             "key.namelength" : 19,
-            "key.nameoffset" : 535,
-            "key.offset" : 531,
+            "key.nameoffset" : 537,
+            "key.offset" : 533,
             "key.parsed_declaration" : "public var debuggingIdentifier : String? = nil",
             "key.parsed_scope.end" : 23,
             "key.parsed_scope.start" : 23,
@@ -7194,17 +6991,17 @@
               {
                 "key.attribute" : "source.decl.attribute.internal",
                 "key.length" : 8,
-                "key.offset" : 580
+                "key.offset" : 582
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> let<\/syntaxtype.keyword> reuseIdentifier<\/decl.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 46,
             "key.name" : "reuseIdentifier",
             "key.namelength" : 15,
-            "key.nameoffset" : 593,
-            "key.offset" : 589,
+            "key.nameoffset" : 595,
+            "key.offset" : 591,
             "key.parsed_declaration" : "internal let reuseIdentifier : ReuseIdentifier",
             "key.parsed_scope.end" : 25,
             "key.parsed_scope.start" : 25,
@@ -7218,7 +7015,7 @@
             "key.name" : "MARK: Initialization",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 655
+            "key.offset" : 657
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -7227,17 +7024,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 692
+                "key.offset" : 694
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><Content>.Build<\/decl.name> = (inout<\/syntaxtype.keyword> HeaderFooter<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 44,
             "key.name" : "Build",
             "key.namelength" : 5,
-            "key.nameoffset" : 709,
-            "key.offset" : 699,
+            "key.nameoffset" : 711,
+            "key.offset" : 701,
             "key.parsed_declaration" : "public typealias Build = (inout HeaderFooter) -> ()",
             "key.parsed_scope.end" : 31,
             "key.parsed_scope.start" : 31,
@@ -7252,25 +7049,25 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 753
+                "key.offset" : 755
               }
             ],
             "key.bodylength" : 62,
-            "key.bodyoffset" : 824,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.bodyoffset" : 826,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 127,
             "key.name" : "init(_:build:)",
             "key.namelength" : 62,
-            "key.nameoffset" : 760,
-            "key.offset" : 760,
+            "key.nameoffset" : 762,
+            "key.offset" : 762,
             "key.parsed_declaration" : "public init(\n    _ content : Content,\n    build : Build\n)",
             "key.parsed_scope.end" : 40,
             "key.parsed_scope.start" : 33,
             "key.related_decls" : [
               {
-                "key.annotated_decl" : "init(_:sizing:layout:onTap:)<\/RelatedName>"
+                "key.annotated_decl" : "init(_:sizing:layouts:onTap:)<\/RelatedName>"
               }
             ],
             "key.substructure" : [
@@ -7282,25 +7079,25 @@
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(_ content: Content<\/Type>, sizing: Sizing<\/Type> = .thatFits(.init(.atLeast(.default))), layout: HeaderFooterLayout<\/Type> = HeaderFooterLayout(), onTap: OnTap<\/Type>? = nil)<\/Declaration>",
+            "key.annotated_decl" : "public init(_ content: Content<\/Type>, sizing: Sizing<\/Type> = .thatFits(.init(.atLeast(.default))), layouts: HeaderFooterLayouts<\/Type> = .init(), onTap: OnTap<\/Type>? = nil)<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 897
+                "key.offset" : 899
               }
             ],
-            "key.bodylength" : 274,
-            "key.bodyoffset" : 1099,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum><\/decl.var.parameter.type> = .thatFits(.init(.atLeast(.default)))<\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: HeaderFooterLayout<\/ref.struct><\/decl.var.parameter.type> = HeaderFooterLayout()<\/decl.var.parameter>, onTap<\/decl.var.parameter.argument_label>: OnTap<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.bodylength" : 276,
+            "key.bodyoffset" : 1090,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum><\/decl.var.parameter.type> = .thatFits(.init(.atLeast(.default)))<\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: HeaderFooterLayouts<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, onTap<\/decl.var.parameter.argument_label>: OnTap<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 470,
-            "key.name" : "init(_:sizing:layout:onTap:)",
-            "key.namelength" : 193,
-            "key.nameoffset" : 904,
-            "key.offset" : 904,
-            "key.parsed_declaration" : "public init(\n    _ content : Content,\n    sizing : Sizing = .thatFits(.init(.atLeast(.default))),\n    layout : HeaderFooterLayout = HeaderFooterLayout(),\n    onTap : OnTap? = nil\n)",
+            "key.length" : 461,
+            "key.name" : "init(_:sizing:layouts:onTap:)",
+            "key.namelength" : 182,
+            "key.nameoffset" : 906,
+            "key.offset" : 906,
+            "key.parsed_declaration" : "public init(\n    _ content : Content,\n    sizing : Sizing = .thatFits(.init(.atLeast(.default))),\n    layouts : HeaderFooterLayouts = .init(),\n    onTap : OnTap? = nil\n)",
             "key.parsed_scope.end" : 58,
             "key.parsed_scope.start" : 42,
             "key.related_decls" : [
@@ -7311,9 +7108,9 @@
             "key.substructure" : [
 
             ],
-            "key.typename" : " (HeaderFooter.Type) -> (Content, Sizing, HeaderFooterLayout, ((Content) -> ())?) -> HeaderFooter",
-            "key.typeusr" : "$s_6sizing6layout5onTap10ListableUI12HeaderFooterVyxGx_AD6SizingOAD0gH6LayoutVyxcSgtcD",
-            "key.usr" : "s:10ListableUI12HeaderFooterV_6sizing6layout5onTapACyxGx_AA6SizingOAA0cD6LayoutVyxcSgtcfc"
+            "key.typename" : " (HeaderFooter.Type) -> (Content, Sizing, HeaderFooterLayouts, ((Content) -> ())?) -> HeaderFooter",
+            "key.typeusr" : "$s_6sizing7layouts5onTap10ListableUI12HeaderFooterVyxGx_AD6SizingOAD0gH7LayoutsVyxcSgtcD",
+            "key.usr" : "s:10ListableUI12HeaderFooterV_6sizing7layouts5onTapACyxGx_AA6SizingOAA0cD7LayoutsVyxcSgtcfc"
           },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -7321,7 +7118,7 @@
             "key.name" : "MARK: AnyHeaderFooter_Internal",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 1387
+            "key.offset" : 1380
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -7330,19 +7127,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1427
+                "key.offset" : 1420
               }
             ],
             "key.bodylength" : 381,
-            "key.bodyoffset" : 1565,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.bodyoffset" : 1558,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> anyView<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 513,
             "key.name" : "apply(to:for:with:)",
             "key.namelength" : 124,
-            "key.nameoffset" : 1439,
-            "key.offset" : 1434,
+            "key.nameoffset" : 1432,
+            "key.offset" : 1427,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0ldE11ContentInfoVtF"
@@ -7354,14 +7151,14 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let view: HeaderFooterContentView<\/Type><Content><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: HeaderFooterContentView<\/ref.class><Content><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 55,
                 "key.name" : "view",
                 "key.namelength" : 4,
-                "key.nameoffset" : 1578,
-                "key.offset" : 1574,
+                "key.nameoffset" : 1571,
+                "key.offset" : 1567,
                 "key.parsed_declaration" : "let view = anyView as! HeaderFooterContentView",
                 "key.parsed_scope.end" : 67,
                 "key.parsed_scope.start" : 67,
@@ -7371,14 +7168,14 @@
               },
               {
                 "key.annotated_decl" : "let views: HeaderFooterContentViews<\/Type><Content><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> views<\/decl.name>: HeaderFooterContentViews<\/ref.struct><Content><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 176,
                 "key.name" : "views",
                 "key.namelength" : 5,
-                "key.nameoffset" : 1651,
-                "key.offset" : 1647,
+                "key.nameoffset" : 1644,
+                "key.offset" : 1640,
                 "key.parsed_declaration" : "let views = HeaderFooterContentViews(\n    content: view.content,\n    background: view.background,\n    pressed: view.pressedBackground\n)",
                 "key.parsed_scope.end" : 69,
                 "key.parsed_scope.start" : 69,
@@ -7398,19 +7195,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1961
+                "key.offset" : 1954
               }
             ],
             "key.bodylength" : 174,
-            "key.bodyoffset" : 2030,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.bodyoffset" : 2023,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> anyIsEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 237,
             "key.name" : "anyIsEquivalent(to:)",
             "key.namelength" : 43,
-            "key.nameoffset" : 1973,
-            "key.offset" : 1968,
+            "key.nameoffset" : 1966,
+            "key.offset" : 1961,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP15anyIsEquivalent2toSbAA0cdE0_p_tF"
@@ -7433,19 +7230,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2215
+                "key.offset" : 2208
               }
             ],
             "key.bodylength" : 114,
-            "key.bodyoffset" : 2305,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.bodyoffset" : 2298,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newPresentationHeaderFooterState<\/decl.name>(performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Any<\/syntaxtype.keyword><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 198,
             "key.name" : "newPresentationHeaderFooterState(performsContentCallbacks:)",
             "key.namelength" : 65,
-            "key.nameoffset" : 2227,
-            "key.offset" : 2222,
+            "key.nameoffset" : 2220,
+            "key.offset" : 2215,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI24AnyHeaderFooter_InternalP015newPresentationdE5State24performsContentCallbacksypSb_tF"
@@ -7469,15 +7266,15 @@
       {
         "key.annotated_decl" : "public struct HeaderFooter<Content> : AnyHeaderFooter<\/Type> where Content : HeaderFooterContent<\/Type><\/Declaration>",
         "key.bodylength" : 177,
-        "key.bodyoffset" : 2468,
+        "key.bodyoffset" : 2461,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 16,
-            "key.offset" : 2450
+            "key.offset" : 2443
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooter<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyHeaderFooter<\/ref.protocol> where<\/syntaxtype.keyword> Content : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -7488,8 +7285,8 @@
         "key.length" : 221,
         "key.name" : "HeaderFooter",
         "key.namelength" : 12,
-        "key.nameoffset" : 2435,
-        "key.offset" : 2425,
+        "key.nameoffset" : 2428,
+        "key.offset" : 2418,
         "key.parsed_declaration" : "extension HeaderFooter : SignpostLoggable",
         "key.parsed_scope.end" : 106,
         "key.parsed_scope.start" : 98,
@@ -7497,15 +7294,15 @@
           {
             "key.annotated_decl" : "var signpostInfo: SignpostLoggingInfo<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 130,
-            "key.bodyoffset" : 2513,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
+            "key.bodyoffset" : 2506,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooter.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> signpostInfo<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 171,
             "key.name" : "signpostInfo",
             "key.namelength" : 12,
-            "key.nameoffset" : 2477,
-            "key.offset" : 2473,
+            "key.nameoffset" : 2470,
+            "key.offset" : 2466,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI16SignpostLoggableP12signpostInfoAA0c7LoggingF0Vvp"
@@ -7526,7 +7323,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 6362,
     "key.offset" : 0,
@@ -7541,7 +7338,7 @@
             "key.offset" : 98
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> HeaderContent<\/decl.name> = HeaderFooterContent<\/ref.protocol><\/decl.typealias>",
         "key.kind" : "source.lang.swift.decl.typealias",
         "key.length" : 45,
@@ -7566,7 +7363,7 @@
             "key.offset" : 151
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> FooterContent<\/decl.name> = HeaderFooterContent<\/ref.protocol><\/decl.typealias>",
         "key.kind" : "source.lang.swift.decl.typealias",
         "key.length" : 45,
@@ -7613,14 +7410,14 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 45,
         "key.doc.name" : "HeaderFooterContent",
         "key.doc.type" : "Class",
         "key.doclength" : 1406,
         "key.docoffset" : 206,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.protocol",
         "key.length" : 3120,
@@ -7643,7 +7440,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func apply(to views: HeaderFooterContentViews<\/Type><Self<\/Type>>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: HeaderFooterContentViews<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 151,
@@ -7672,7 +7469,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func isEquivalent(to other: Self<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 42,
@@ -7709,14 +7506,14 @@
             "key.doc.column" : 20,
             "key.doc.comment" : "The content view used to draw the content.\nThe content view is drawn at the top of the view hierarchy, above the background views.",
             "key.doc.declaration" : "associatedtype ContentView : UIView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "ContentView<\/Name>s:10ListableUI19HeaderFooterContentP0E4ViewQa<\/USR>associatedtype ContentView : UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "ContentView<\/Name>s:10ListableUI19HeaderFooterContentP0E4ViewQa<\/USR>associatedtype ContentView : UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 69,
             "key.doc.name" : "ContentView",
             "key.doc.type" : "Other",
             "key.doclength" : 143,
             "key.docoffset" : 2046,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> ContentView<\/decl.name> : UIView<\/ref.class><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 33,
@@ -7742,14 +7539,14 @@
                 "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 78,
             "key.doc.name" : "createReusableContentView(frame:)",
             "key.doc.type" : "Function",
             "key.doclength" : 328,
             "key.docoffset" : 2237,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ContentView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 68,
@@ -7786,14 +7583,14 @@
                 "Para" : "Defaults to a `UIView` with no drawn appearance or state. You do not need to provide this `typealias` unless you would like to draw a background view."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "BackgroundView<\/Name>s:10ListableUI19HeaderFooterContentP14BackgroundViewQa<\/USR>associatedtype BackgroundView : UIView = UIView<\/Declaration>The background view used to draw the background of the content. The background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a background view.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "BackgroundView<\/Name>s:10ListableUI19HeaderFooterContentP14BackgroundViewQa<\/USR>associatedtype BackgroundView : UIView = UIView<\/Declaration>The background view used to draw the background of the content. The background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a background view.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 93,
             "key.doc.name" : "BackgroundView",
             "key.doc.type" : "Other",
             "key.doclength" : 346,
             "key.docoffset" : 2717,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> BackgroundView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 45,
@@ -7819,14 +7616,14 @@
                 "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 101,
             "key.doc.name" : "createReusableBackgroundView(frame:)",
             "key.doc.type" : "Function",
             "key.doclength" : 344,
             "key.docoffset" : 3122,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 74,
@@ -7860,14 +7657,14 @@
                 "Para" : "Defaults to a `UIView` with no drawn appearance or state. You do not need to provide this `typealias` unless you would like to draw a selected background view."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "PressedBackgroundView<\/Name>s:10ListableUI19HeaderFooterContentP21PressedBackgroundViewQa<\/USR>associatedtype PressedBackgroundView : UIView = UIView<\/Declaration>The selected background view used to draw the background of the content when it is selected or highlighted. The selected background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a selected background view.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "PressedBackgroundView<\/Name>s:10ListableUI19HeaderFooterContentP21PressedBackgroundViewQa<\/USR>associatedtype PressedBackgroundView : UIView = UIView<\/Declaration>The selected background view used to draw the background of the content when it is selected or highlighted. The selected background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a selected background view.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 112,
             "key.doc.name" : "PressedBackgroundView",
             "key.doc.type" : "Other",
             "key.doclength" : 408,
             "key.docoffset" : 3554,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> PressedBackgroundView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 52,
@@ -7899,14 +7696,14 @@
                 "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "createReusablePressedBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ<\/USR>static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s pressed background.<\/Para><\/Abstract>This view is displayed when the user taps\/presses the header \/ footer.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "createReusablePressedBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ<\/USR>static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s pressed background.<\/Para><\/Abstract>This view is displayed when the user taps\/presses the header \/ footer.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 125,
             "key.doc.name" : "createReusablePressedBackgroundView(frame:)",
             "key.doc.type" : "Function",
             "key.doclength" : 617,
             "key.docoffset" : 4028,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusablePressedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> PressedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 88,
@@ -7949,14 +7746,14 @@
         "key.doc.column" : 15,
         "key.doc.comment" : "Information about the current state of the content, which is passed to `apply(to:for:with:)`\nduring configuration and preparation for display.",
         "key.doc.declaration" : "public struct ApplyHeaderFooterContentInfo",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "ApplyHeaderFooterContentInfo<\/Name>s:10ListableUI28ApplyHeaderFooterContentInfoV<\/USR>public struct ApplyHeaderFooterContentInfo<\/Declaration>Information about the current state of the content, which is passed to apply(to:for:with:)<\/codeVoice> during configuration and preparation for display.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "ApplyHeaderFooterContentInfo<\/Name>s:10ListableUI28ApplyHeaderFooterContentInfoV<\/USR>public struct ApplyHeaderFooterContentInfo<\/Declaration>Information about the current state of the content, which is passed to apply(to:for:with:)<\/codeVoice> during configuration and preparation for display.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 131,
         "key.doc.name" : "ApplyHeaderFooterContentInfo",
         "key.doc.type" : "Class",
         "key.doclength" : 151,
         "key.docoffset" : 4742,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ApplyHeaderFooterContentInfo<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 185,
@@ -7981,14 +7778,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The environment of the containing list.\nSee `ListEnvironment` for usage information.",
             "key.doc.declaration" : "public var environment: ListEnvironment",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI28ApplyHeaderFooterContentInfoV11environmentAA15ListEnvironmentVvp<\/USR>public var environment: ListEnvironment<\/Declaration>The environment of the containing list. See ListEnvironment<\/codeVoice> for usage information.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI28ApplyHeaderFooterContentInfoV11environmentAA15ListEnvironmentVvp<\/USR>public var environment: ListEnvironment<\/Declaration>The environment of the containing list. See ListEnvironment<\/codeVoice> for usage information.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 135,
             "key.doc.name" : "environment",
             "key.doc.type" : "Other",
             "key.doclength" : 97,
             "key.docoffset" : 4942,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -8024,14 +7821,14 @@
         "key.doc.column" : 15,
         "key.doc.comment" : "The views owned by the item content, passed to the `apply(to:) method to theme and provide content.`",
         "key.doc.declaration" : "public struct HeaderFooterContentViews where Content : ListableUI.HeaderFooterContent",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "HeaderFooterContentViews<\/Name>s:10ListableUI24HeaderFooterContentViewsV<\/USR>public struct HeaderFooterContentViews<Content> where Content : ListableUI.HeaderFooterContent<\/Declaration>The views owned by the item content, passed to the apply(to:) method to theme and provide content.<\/codeVoice><\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "HeaderFooterContentViews<\/Name>s:10ListableUI24HeaderFooterContentViewsV<\/USR>public struct HeaderFooterContentViews<Content> where Content : ListableUI.HeaderFooterContent<\/Declaration>The views owned by the item content, passed to the apply(to:) method to theme and provide content.<\/codeVoice><\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 140,
         "key.doc.name" : "HeaderFooterContentViews",
         "key.doc.type" : "Class",
         "key.doclength" : 105,
         "key.docoffset" : 5088,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterContentViews<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Content : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 395,
@@ -8052,7 +7849,7 @@
                 "key.offset" : 5240
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -8085,14 +7882,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The content view of the content.",
             "key.doc.declaration" : "public var content: Content.ContentView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI24HeaderFooterContentViewsV7content0E4ViewQzvp<\/USR>public var content: Content.ContentView<\/Declaration>The content view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI24HeaderFooterContentViewsV7content0E4ViewQzvp<\/USR>public var content: Content.ContentView<\/Declaration>The content view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 143,
             "key.doc.name" : "content",
             "key.doc.type" : "Other",
             "key.doclength" : 37,
             "key.docoffset" : 5267,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param>.ContentView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -8121,14 +7918,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The background view of the content.",
             "key.doc.declaration" : "public var background: Content.BackgroundView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "background<\/Name>s:10ListableUI24HeaderFooterContentViewsV10background14BackgroundViewQzvp<\/USR>public var background: Content.BackgroundView<\/Declaration>The background view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "background<\/Name>s:10ListableUI24HeaderFooterContentViewsV10background14BackgroundViewQzvp<\/USR>public var background: Content.BackgroundView<\/Declaration>The background view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 146,
             "key.doc.name" : "background",
             "key.doc.type" : "Other",
             "key.doclength" : 40,
             "key.docoffset" : 5358,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> background<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
@@ -8157,14 +7954,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The background view of the content that's displayed while a press is active.",
             "key.doc.declaration" : "public var pressed: Content.PressedBackgroundView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "pressed<\/Name>s:10ListableUI24HeaderFooterContentViewsV7pressed21PressedBackgroundViewQzvp<\/USR>public var pressed: Content.PressedBackgroundView<\/Declaration>The background view of the content that’s displayed while a press is active.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "pressed<\/Name>s:10ListableUI24HeaderFooterContentViewsV7pressed21PressedBackgroundViewQzvp<\/USR>public var pressed: Content.PressedBackgroundView<\/Declaration>The background view of the content that’s displayed while a press is active.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 149,
             "key.doc.name" : "pressed",
             "key.doc.type" : "Other",
             "key.doclength" : 81,
             "key.docoffset" : 5458,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pressed<\/decl.name>: Content<\/ref.generic_type_param>.PressedBackgroundView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 43,
@@ -8217,14 +8014,14 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 45,
         "key.doc.name" : "HeaderFooterContent",
         "key.doc.type" : "Class",
         "key.doclength" : 169,
         "key.docoffset" : 5598,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 146,
@@ -8241,7 +8038,7 @@
             "key.annotated_decl" : "func isEquivalent(to other: Self<\/Type>) -> Bool<\/Type><\/Declaration>",
             "key.bodylength" : 34,
             "key.bodyoffset" : 5883,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 83,
@@ -8300,12 +8097,12 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 45,
         "key.doc.name" : "HeaderFooterContent",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 197,
@@ -8332,12 +8129,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 101,
             "key.doc.name" : "createReusableBackgroundView(frame:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 123,
@@ -8396,12 +8193,12 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-Index 3) `ContentView` z-Index 2) `PressedBackgroundView` (Only if the header\/footer is pressed, eg if the wrapping `HeaderFooter` has an `onTap` handler.) z-Index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-        "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.doc.full_as_xml" : "HeaderFooterContent<\/Name>s:10ListableUI19HeaderFooterContentP<\/USR>public protocol HeaderFooterContent<\/Declaration>A HeaderFooterContent<\/codeVoice> is a type which specifies the content of a header, footer, or other supplementary view within a listable list.<\/Para><\/Abstract>A non-tappable header that shows a label and icon might look like this (implementation of MyHeaderView<\/codeVoice> left up to the reader):<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyHeaderView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, reason : ApplyReason) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The header is made Equatable<\/codeVoice> in order to synthesize automatic conformance to isEquivalent<\/codeVoice>, based on the header’s properties.<\/Para>If you want to add support for rendering a background view and a pressed state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusablePressedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-Index 3) ContentView<\/codeVoice> z-Index 2) PressedBackgroundView<\/codeVoice> (Only if the header\/footer is pressed, eg if the wrapping HeaderFooter<\/codeVoice> has an onTap<\/codeVoice> handler.) z-Index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 45,
         "key.doc.name" : "HeaderFooterContent",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 225,
@@ -8434,12 +8231,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
-            "key.doc.full_as_xml" : "createReusablePressedBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ<\/USR>static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s pressed background.<\/Para><\/Abstract>This view is displayed when the user taps\/presses the header \/ footer.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.doc.full_as_xml" : "createReusablePressedBackgroundView(frame:)<\/Name>s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ<\/USR>static func createReusablePressedBackgroundView(frame: CGRect) -> PressedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s pressed background.<\/Para><\/Abstract>This view is displayed when the user taps\/presses the header \/ footer.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from HeaderFooterContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 125,
             "key.doc.name" : "createReusablePressedBackgroundView(frame:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusablePressedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> PressedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 144,
@@ -8470,112 +8267,294 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayout.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 307,
+    "key.length" : 3595,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct HeaderFooterLayout : Equatable<\/Type><\/Declaration>",
+        "key.annotated_decl" : "public struct HeaderFooterLayouts<\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 117
+            "key.offset" : 1543
           }
         ],
-        "key.bodylength" : 142,
-        "key.bodyoffset" : 163,
-        "key.elements" : [
+        "key.bodylength" : 1303,
+        "key.bodyoffset" : 1578,
+        "key.doc.column" : 15,
+        "key.doc.comment" : "\n`HeaderFooterLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your header:\n\n```\nmyHeader.layouts.table = .init(\n    width: .fill\n)\n```\n\nAnd then, when the `HeaderFooter` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyHeader.layouts.table = .init(\n    width: .fill\n)\n\nmyHeader.layouts.otherLayout = .init(\n    width: 300,\n    alignment: .left\n    padding: 10\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`,\nto provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:\n\n```\nextension HeaderFooterLayouts {\n    public var table : TableAppearance.HeaderFooter.Layout {\n        get { self[TableAppearance.HeaderFooter.Layout.self] }\n        set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }\n    }\n}\n```",
+        "key.doc.declaration" : "public struct HeaderFooterLayouts",
+        "key.doc.discussion" : [
           {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 9,
-            "key.offset" : 152
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayout<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
-        "key.inheritedtypes" : [
+            "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your header:"
+          },
           {
-            "key.name" : "Equatable"
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "And then, when the `HeaderFooter` is used within a `.table` style list layout, the provided layout will be used."
+          },
+          {
+            "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "When implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`, to provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:"
+          },
+          {
+            "CodeListing" : ""
           }
         ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+        "key.doc.full_as_xml" : "HeaderFooterLayouts<\/Name>s:10ListableUI19HeaderFooterLayoutsV<\/USR>public struct HeaderFooterLayouts<\/Declaration>HeaderFooterLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your header:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the HeaderFooter<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to HeaderFooterLayouts<\/codeVoice>, to provide easier access to your layout-specific HeaderFooterLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 55,
+        "key.doc.name" : "HeaderFooterLayouts",
+        "key.doc.type" : "Class",
+        "key.doclength" : 1426,
+        "key.docoffset" : 117,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayouts<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 182,
-        "key.name" : "HeaderFooterLayout",
-        "key.namelength" : 18,
-        "key.nameoffset" : 131,
-        "key.offset" : 124,
-        "key.parsed_declaration" : "public struct HeaderFooterLayout : Equatable",
-        "key.parsed_scope.end" : 20,
-        "key.parsed_scope.start" : 11,
+        "key.length" : 1332,
+        "key.name" : "HeaderFooterLayouts",
+        "key.namelength" : 19,
+        "key.nameoffset" : 1557,
+        "key.offset" : 1550,
+        "key.parsed_declaration" : "public struct HeaderFooterLayouts",
+        "key.parsed_scope.end" : 89,
+        "key.parsed_scope.start" : 55,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 168
+                "key.offset" : 1720
+              }
+            ],
+            "key.bodylength" : 70,
+            "key.bodyoffset" : 1792,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Creates a new instance of the layouts, with an optional `configure`\nclosure, to allow you to set up styling inline.",
+            "key.doc.declaration" : "public init(_ configure: (inout `Self`) -> () = { _ in })",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+            "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI19HeaderFooterLayoutsVyACyACzXEcfc<\/USR>public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>Creates a new instance of the layouts, with an optional configure<\/codeVoice> closure, to allow you to set up styling inline.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.line" : 59,
+            "key.doc.name" : "init(_:)",
+            "key.doc.type" : "Function",
+            "key.doclength" : 128,
+            "key.docoffset" : 1588,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 136,
+            "key.name" : "init(_:)",
+            "key.namelength" : 63,
+            "key.nameoffset" : 1727,
+            "key.offset" : 1727,
+            "key.parsed_declaration" : "public init(\n    _ configure : (inout Self) -> () = { _ in }\n)",
+            "key.parsed_scope.end" : 65,
+            "key.parsed_scope.start" : 59,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(HeaderFooterLayouts.Type) -> ((inout HeaderFooterLayouts) -> ()) -> HeaderFooterLayouts",
+            "key.typeusr" : "$sy10ListableUI19HeaderFooterLayoutsVyACzXEcD",
+            "key.usr" : "s:10ListableUI19HeaderFooterLayoutsVyACyACzXEcfc"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.private",
+            "key.annotated_decl" : "private var storage: ContentLayoutsStorage<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.private",
+                "key.length" : 7,
+                "key.offset" : 1873
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> storage<\/decl.name>: ContentLayoutsStorage<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 23,
-            "key.name" : "width",
-            "key.namelength" : 5,
-            "key.nameoffset" : 179,
-            "key.offset" : 175,
-            "key.parsed_declaration" : "public var width : CustomWidth",
-            "key.parsed_scope.end" : 13,
-            "key.parsed_scope.start" : 13,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "CustomWidth",
-            "key.typeusr" : "$s10ListableUI11CustomWidthOD",
-            "key.usr" : "s:10ListableUI18HeaderFooterLayoutV5widthAA11CustomWidthOvp"
+            "key.length" : 35,
+            "key.name" : "storage",
+            "key.namelength" : 7,
+            "key.nameoffset" : 1885,
+            "key.offset" : 1881,
+            "key.parsed_declaration" : "private var storage : ContentLayoutsStorage",
+            "key.parsed_scope.end" : 67,
+            "key.parsed_scope.start" : 67,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.private",
+            "key.typename" : "ContentLayoutsStorage",
+            "key.typeusr" : "$s10ListableUI21ContentLayoutsStorageVD",
+            "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV7storage33_AEFF59B9891C827F923FD7D479A9E22ALLAA07ContentE7StorageVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(width: CustomWidth<\/Type> = .default)<\/Declaration>",
+            "key.annotated_decl" : "public subscript<ValueType>(valueType: ValueType<\/Type>.Type) -> ValueType<\/Type> where ValueType : HeaderFooterLayoutsValue<\/Type> { get set }<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 212
+                "key.offset" : 2641
               }
             ],
-            "key.bodylength" : 32,
-            "key.bodyoffset" : 271,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 85,
-            "key.name" : "init(width:)",
-            "key.namelength" : 50,
-            "key.nameoffset" : 219,
-            "key.offset" : 219,
-            "key.parsed_declaration" : "public init(\n    width : CustomWidth = .default\n)",
-            "key.parsed_scope.end" : 19,
-            "key.parsed_scope.start" : 15,
+            "key.bodylength" : 141,
+            "key.bodyoffset" : 2738,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Allows accessing the various `HeaderFooterLayoutValue`s stored within the object.\nThis method will return the `defaultValue` for a value if none is set.\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`,\nto provide easier access to your layout-specific `HeaderFooterLayoutsValue` type.\n\n```\nextension HeaderFooterLayouts {\n    public var table : TableAppearance.HeaderFooter.Layout {\n        get { self[TableAppearance.HeaderFooter.Layout.self] }\n        set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }\n    }\n}\n```",
+            "key.doc.declaration" : "public subscript(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.HeaderFooterLayoutsValue { get set }",
+            "key.doc.discussion" : [
+              {
+                "Para" : "When implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`, to provide easier access to your layout-specific `HeaderFooterLayoutsValue` type."
+              },
+              {
+                "CodeListing" : ""
+              }
+            ],
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+            "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:10ListableUI19HeaderFooterLayoutsVyxxmcAA0cdE5ValueRzluip<\/USR>public subscript<ValueType>(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.HeaderFooterLayoutsValue { get set }<\/Declaration>Allows accessing the various HeaderFooterLayoutValue<\/codeVoice>s stored within the object. This method will return the defaultValue<\/codeVoice> for a value if none is set.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to HeaderFooterLayouts<\/codeVoice>, to provide easier access to your layout-specific HeaderFooterLayoutsValue<\/codeVoice> type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.line" : 85,
+            "key.doc.name" : "subscript(_:)",
+            "key.doc.type" : "Other",
+            "key.doclength" : 711,
+            "key.docoffset" : 1926,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ValueType<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> ValueType : HeaderFooterLayoutsValue<\/ref.protocol><\/decl.generic_type_requirement> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>",
+            "key.kind" : "source.lang.swift.decl.function.subscript",
+            "key.length" : 232,
+            "key.name" : "subscript(_:)",
+            "key.namelength" : 75,
+            "key.nameoffset" : 2648,
+            "key.offset" : 2648,
+            "key.parsed_declaration" : "public subscript(_ valueType : ValueType.Type) -> ValueType",
+            "key.parsed_scope.end" : 88,
+            "key.parsed_scope.start" : 85,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.substructure" : [
-
+              {
+                "key.annotated_decl" : "ValueType : HeaderFooterLayoutsValue<\/Type><\/Declaration>",
+                "key.elements" : [
+                  {
+                    "key.kind" : "source.lang.swift.structure.elem.typeref",
+                    "key.length" : 24,
+                    "key.offset" : 2668
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+                "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name> : HeaderFooterLayoutsValue<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
+                "key.inheritedtypes" : [
+                  {
+                    "key.name" : "HeaderFooterLayoutsValue"
+                  }
+                ],
+                "key.kind" : "source.lang.swift.decl.generic_type_param",
+                "key.length" : 34,
+                "key.name" : "ValueType",
+                "key.namelength" : 9,
+                "key.nameoffset" : 2658,
+                "key.offset" : 2658,
+                "key.parsed_declaration" : "public subscript (CustomWidth) -> HeaderFooterLayout",
-            "key.typeusr" : "$s5width10ListableUI18HeaderFooterLayoutVAB11CustomWidthO_tcD",
-            "key.usr" : "s:10ListableUI18HeaderFooterLayoutV5widthAcA11CustomWidthO_tcfc"
+            "key.typename" : " (ValueType.Type) -> ValueType",
+            "key.typeusr" : "$syxxmc10ListableUI24HeaderFooterLayoutsValueRzluD",
+            "key.usr" : "s:10ListableUI19HeaderFooterLayoutsVyxxmcAA0cdE5ValueRzluip"
+          }
+        ],
+        "key.typename" : "HeaderFooterLayouts.Type",
+        "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVmD",
+        "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol HeaderFooterLayoutsValue<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 3433
+          }
+        ],
+        "key.bodylength" : 118,
+        "key.bodyoffset" : 3475,
+        "key.doc.column" : 17,
+        "key.doc.comment" : "\nThe `HeaderFooterLayoutsValue` protocol provides a default value for the different layouts stored\nwithin `HeaderFooterLayouts`. Provide a `defaultValue` with reasonable defaults, as the\ndeveloper should not need to set these values at all times when using your layout.\n\n```\npublic struct Layout : Equatable, HeaderFooterLayoutsValue\n{\n    public var width : CGFloat\n    public var minHeight : CGFloat\n\n    ...\n\n    public static var defaultValue : Self {\n        ...\n    }\n}\n```",
+        "key.doc.declaration" : "public protocol HeaderFooterLayoutsValue",
+        "key.doc.discussion" : [
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+        "key.doc.full_as_xml" : "HeaderFooterLayoutsValue<\/Name>s:10ListableUI24HeaderFooterLayoutsValueP<\/USR>public protocol HeaderFooterLayoutsValue<\/Declaration>The HeaderFooterLayoutsValue<\/codeVoice> protocol provides a default value for the different layouts stored within HeaderFooterLayouts<\/codeVoice>. Provide a defaultValue<\/codeVoice> with reasonable defaults, as the developer should not need to set these values at all times when using your layout.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 110,
+        "key.doc.name" : "HeaderFooterLayoutsValue",
+        "key.doc.type" : "Class",
+        "key.doclength" : 548,
+        "key.docoffset" : 2885,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> HeaderFooterLayoutsValue<\/decl.name><\/decl.protocol>",
+        "key.kind" : "source.lang.swift.decl.protocol",
+        "key.length" : 154,
+        "key.name" : "HeaderFooterLayoutsValue",
+        "key.namelength" : 24,
+        "key.nameoffset" : 3449,
+        "key.offset" : 3440,
+        "key.parsed_declaration" : "public protocol HeaderFooterLayoutsValue",
+        "key.parsed_scope.end" : 114,
+        "key.parsed_scope.start" : 110,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "static var defaultValue: Self<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 3586,
+            "key.doc.column" : 16,
+            "key.doc.comment" : "The default value used when accessing the value, if none is set.",
+            "key.doc.declaration" : "static var defaultValue: Self { get }",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+            "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 113,
+            "key.doc.name" : "defaultValue",
+            "key.doc.type" : "Other",
+            "key.doclength" : 69,
+            "key.docoffset" : 3481,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+            "key.kind" : "source.lang.swift.decl.var.static",
+            "key.length" : 38,
+            "key.name" : "defaultValue",
+            "key.namelength" : 12,
+            "key.nameoffset" : 3565,
+            "key.offset" : 3554,
+            "key.parsed_declaration" : "static var defaultValue : Self",
+            "key.parsed_scope.end" : 113,
+            "key.parsed_scope.start" : 113,
+            "key.typename" : "Self",
+            "key.typeusr" : "$sxD",
+            "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ"
           }
         ],
-        "key.typename" : "HeaderFooterLayout.Type",
-        "key.typeusr" : "$s10ListableUI18HeaderFooterLayoutVmD",
-        "key.usr" : "s:10ListableUI18HeaderFooterLayoutV"
+        "key.typename" : "HeaderFooterLayoutsValue.Protocol",
+        "key.typeusr" : "$s10ListableUI24HeaderFooterLayoutsValue_pmD",
+        "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP"
       }
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 4423,
     "key.offset" : 0,
@@ -8617,8 +8596,8 @@
             "Para" : "Even once type-erased to `AnyIdentifier`, these identifiers will still not be equal, because their underlying `Represented` type is different."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
-        "key.doc.full_as_xml" : "Identifier<\/Name>s:10ListableUI10IdentifierC<\/USR>public final class Identifier<Represented> : AnyIdentifier<\/Declaration>An Identifier<\/codeVoice> is used to unique items in Listable lists. Sections, and items in those sections have identifiers, which are used to keep track of those items and sections as updates are pushed through the list view.<\/Para><\/Abstract>Identifiers for content shouldn’t change – if it does, the item or section is treated as a new item. This means that for your ItemContent<\/codeVoice> or Section<\/codeVoice>, you should use a stable identifier like server ID or unique value that does not change.<\/Para>Identifiers do not<\/emphasis> have to be unique, but it certainly helps. When applying updates, Listable will convert duplicate identifiers to unique identifiers by counting upward for each equal identifier it finds (eg, “MyID.1, MyID.2, MyID.3”, etc). However, you should do your best to ensure identifiers are unique, as this helps generate a visually correct diff when applying updates.<\/Para>Identifiers are strongly typed; alongside their contained value, they also encode their Represented<\/codeVoice> type. This means that these two identifiers are different, despite having the same value<\/codeVoice>.<\/Para>(\"value\")]]><\/zCodeLineNumbered>(\"value\")]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Even once type-erased to AnyIdentifier<\/codeVoice>, these identifiers will still not be equal, because their underlying Represented<\/codeVoice> type is different.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
+        "key.doc.full_as_xml" : "Identifier<\/Name>s:10ListableUI10IdentifierC<\/USR>public final class Identifier<Represented> : AnyIdentifier<\/Declaration>An Identifier<\/codeVoice> is used to unique items in Listable lists. Sections, and items in those sections have identifiers, which are used to keep track of those items and sections as updates are pushed through the list view.<\/Para><\/Abstract>Identifiers for content shouldn’t change – if it does, the item or section is treated as a new item. This means that for your ItemContent<\/codeVoice> or Section<\/codeVoice>, you should use a stable identifier like server ID or unique value that does not change.<\/Para>Identifiers do not<\/emphasis> have to be unique, but it certainly helps. When applying updates, Listable will convert duplicate identifiers to unique identifiers by counting upward for each equal identifier it finds (eg, “MyID.1, MyID.2, MyID.3”, etc). However, you should do your best to ensure identifiers are unique, as this helps generate a visually correct diff when applying updates.<\/Para>Identifiers are strongly typed; alongside their contained value, they also encode their Represented<\/codeVoice> type. This means that these two identifiers are different, despite having the same value<\/codeVoice>.<\/Para>(\"value\")]]><\/zCodeLineNumbered>(\"value\")]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Even once type-erased to AnyIdentifier<\/codeVoice>, these identifiers will still not be equal, because their underlying Represented<\/codeVoice> type is different.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 35,
         "key.doc.name" : "Identifier",
         "key.doc.type" : "Class",
@@ -8631,7 +8610,7 @@
             "key.offset" : 1523
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Identifier<\/decl.name><Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyIdentifier<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -8650,7 +8629,7 @@
         "key.substructure" : [
           {
             "key.annotated_decl" : "Represented<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "Represented<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 11,
@@ -8685,14 +8664,14 @@
             "key.doc.column" : 24,
             "key.doc.comment" : "Identifier which identifies by the type of `Represented` only.\nIf you have multiple of `Represented` within a list, it is recommended that\nyou use `init(_ value:)` to provide a unique inner value.",
             "key.doc.declaration" : "public convenience init()",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
-            "key.doc.full_as_xml" : "init()<\/Name>s:10ListableUI10IdentifierCACyxGycfc<\/USR>public convenience init()<\/Declaration>Identifier which identifies by the type of Represented<\/codeVoice> only. If you have multiple of Represented<\/codeVoice> within a list, it is recommended that you use init(_ value:)<\/codeVoice> to provide a unique inner value.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
+            "key.doc.full_as_xml" : "init()<\/Name>s:10ListableUI10IdentifierCACyxGycfc<\/USR>public convenience init()<\/Declaration>Identifier which identifies by the type of Represented<\/codeVoice> only. If you have multiple of Represented<\/codeVoice> within a list, it is recommended that you use init(_ value:)<\/codeVoice> to provide a unique inner value.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 40,
             "key.doc.name" : "init()",
             "key.doc.type" : "Function",
             "key.doclength" : 217,
             "key.docoffset" : 1543,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> convenience<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 40,
@@ -8730,14 +8709,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates an identifier which identifies by both `Represented`, and the `value` passed to init.",
             "key.doc.declaration" : "public init(_ value: Value) where Value : Hashable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
-            "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI10IdentifierCyACyxGqd__cSHRd__lufc<\/USR>public init<Value>(_ value: Value) where Value : Hashable<\/Declaration>Creates an identifier which identifies by both Represented<\/codeVoice>, and the value<\/codeVoice> passed to init.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
+            "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI10IdentifierCyACyxGqd__cSHRd__lufc<\/USR>public init<Value>(_ value: Value) where Value : Hashable<\/Declaration>Creates an identifier which identifies by both Represented<\/codeVoice>, and the value<\/codeVoice> passed to init.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 46,
             "key.doc.name" : "init(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 98,
             "key.docoffset" : 1833,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Value : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 171,
@@ -8763,7 +8742,7 @@
                     "key.offset" : 1953
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
                 "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -8813,7 +8792,7 @@
             ],
             "key.bodylength" : 106,
             "key.bodyoffset" : 2217,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debugDescription<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 138,
@@ -8867,8 +8846,8 @@
             "Para" : "Note that like Swift `KeyPath`s, `AnyIdentifier` is the base type for `Identifier`. This is done purely for performance reasons; it allows free bridging from `Identifier` to `AnyIdentifier`."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
-        "key.doc.full_as_xml" : "AnyIdentifier<\/Name>s:10ListableUI13AnyIdentifierC<\/USR>public class AnyIdentifier : Hashable, CustomDebugStringConvertible<\/Declaration>A type-erased Identifier<\/codeVoice> used to identify content in a listable list.<\/Para><\/Abstract>Even though type-erased, the original Represented<\/codeVoice> type from the Identifier<\/codeVoice> is still retained when being type erased, meaning comparing two AnyIdentifiers<\/codeVoice> with the same value<\/codeVoice> but different Represented<\/codeVoice> types will report false<\/codeVoice>:<\/Para>(\"value\") as AnyIdentifier]]><\/zCodeLineNumbered>(\"value\") as AnyIdentifier]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Note that like Swift KeyPath<\/codeVoice>s, AnyIdentifier<\/codeVoice> is the base type for Identifier<Represented><\/codeVoice>. This is done purely for performance reasons; it allows free bridging from Identifier<\/codeVoice> to AnyIdentifier<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
+        "key.doc.full_as_xml" : "AnyIdentifier<\/Name>s:10ListableUI13AnyIdentifierC<\/USR>public class AnyIdentifier : Hashable, CustomDebugStringConvertible<\/Declaration>A type-erased Identifier<\/codeVoice> used to identify content in a listable list.<\/Para><\/Abstract>Even though type-erased, the original Represented<\/codeVoice> type from the Identifier<\/codeVoice> is still retained when being type erased, meaning comparing two AnyIdentifiers<\/codeVoice> with the same value<\/codeVoice> but different Represented<\/codeVoice> types will report false<\/codeVoice>:<\/Para>(\"value\") as AnyIdentifier]]><\/zCodeLineNumbered>(\"value\") as AnyIdentifier]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Note that like Swift KeyPath<\/codeVoice>s, AnyIdentifier<\/codeVoice> is the base type for Identifier<Represented><\/codeVoice>. This is done purely for performance reasons; it allows free bridging from Identifier<\/codeVoice> to AnyIdentifier<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 78,
         "key.doc.name" : "AnyIdentifier",
         "key.doc.type" : "Class",
@@ -8886,7 +8865,7 @@
             "key.offset" : 3112
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> class<\/syntaxtype.keyword> AnyIdentifier<\/decl.name> : Hashable<\/ref.protocol>, CustomDebugStringConvertible<\/ref.protocol><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -8916,7 +8895,7 @@
                 "key.offset" : 3147
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> representedType<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 38,
@@ -8941,7 +8920,7 @@
                 "key.offset" : 3203
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> let<\/syntaxtype.keyword> value<\/decl.name>: AnyHashable<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -8966,7 +8945,7 @@
                 "key.offset" : 3248
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> hash<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 14,
@@ -8998,7 +8977,7 @@
             ],
             "key.bodylength" : 225,
             "key.bodyoffset" : 3348,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(type<\/decl.var.parameter.argument_label>: ObjectIdentifier<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, value<\/decl.var.parameter.argument_label>: AnyHashable<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 282,
@@ -9012,7 +8991,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var hasher: Hasher<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> hasher<\/decl.name>: Hasher<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 21,
@@ -9082,7 +9061,7 @@
               }
             ],
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 183,
@@ -9599,7 +9578,7 @@
               }
             ],
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 82,
@@ -9665,7 +9644,7 @@
             "key.doc.full_as_xml" : "debugDescription<\/Name>s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp<\/USR>var debugDescription: String { get }<\/Declaration>A textual representation of this instance, suitable for debugging.<\/Para><\/Abstract>Calling this property directly is discouraged. Instead, convert an instance of any type to a string by using the String(reflecting:)<\/codeVoice> initializer. This initializer works with any type, and uses the custom debugDescription<\/codeVoice> property for types that conform to CustomDebugStringConvertible<\/codeVoice>:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The conversion of p<\/codeVoice> to a string in the assignment to s<\/codeVoice> uses the Point<\/codeVoice> type’s debugDescription<\/codeVoice> property.<\/Para>This documentation comment was inherited from CustomDebugStringConvertible<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.name" : "debugDescription",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debugDescription<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 58,
@@ -9742,7 +9721,7 @@
             "key.annotated_decl" : "var identifierContentString: String<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 286,
             "key.bodyoffset" : 4133,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Identifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Identifier.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifierContentString<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.groupname" : "Hashing",
             "key.kind" : "source.lang.swift.decl.var.instance",
@@ -9766,7 +9745,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 1424,
     "key.offset" : 0,
@@ -9928,7 +9907,7 @@
             "key.annotated_decl" : "func forEachWithIndex(_ block: (Int<\/Type>, Bool<\/Type>, Element<\/Type>) -> ())<\/Declaration>",
             "key.bodylength" : 230,
             "key.bodyoffset" : 191,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> forEachWithIndex<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.groupname" : "Collection\/Array",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
@@ -9943,7 +9922,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let count: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
@@ -9966,7 +9945,7 @@
               },
               {
                 "key.annotated_decl" : "var index: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
@@ -10005,7 +9984,7 @@
             "key.annotated_decl" : "func mapWithIndex<Mapped>(_ block: (Int<\/Type>, Bool<\/Type>, Element<\/Type>) -> Mapped<\/Type>) -> [Mapped<\/Type>]<\/Declaration>",
             "key.bodylength" : 360,
             "key.bodyoffset" : 517,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> mapWithIndex<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.groupname" : "Collection\/Array",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
@@ -10020,7 +9999,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
@@ -10038,7 +10017,7 @@
               },
               {
                 "key.annotated_decl" : "var mapped: [Mapped]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: [Mapped]<\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
@@ -10056,7 +10035,7 @@
               },
               {
                 "key.annotated_decl" : "let count: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
@@ -10079,7 +10058,7 @@
               },
               {
                 "key.annotated_decl" : "var index: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
@@ -10118,7 +10097,7 @@
             "key.annotated_decl" : "func compactMapWithIndex<Mapped>(_ block: (Int<\/Type>, Bool<\/Type>, Element<\/Type>) -> Mapped<\/Type>?) -> [Mapped<\/Type>]<\/Declaration>",
             "key.bodylength" : 439,
             "key.bodyoffset" : 981,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> compactMapWithIndex<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param>?<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.groupname" : "Collection\/Array",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
@@ -10133,7 +10112,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
@@ -10151,7 +10130,7 @@
               },
               {
                 "key.annotated_decl" : "var mapped: [Mapped]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: [Mapped]<\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
@@ -10169,7 +10148,7 @@
               },
               {
                 "key.annotated_decl" : "let count: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
@@ -10192,7 +10171,7 @@
               },
               {
                 "key.annotated_decl" : "var index: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Array.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Array.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
@@ -10235,7 +10214,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Assertions.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Assertions.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 919,
     "key.offset" : 0,
@@ -10252,7 +10231,7 @@
         ],
         "key.bodylength" : 232,
         "key.bodyoffset" : 241,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Assertions.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Assertions.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> listableFatal<\/decl.name>(_<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>) -> Never<\/ref.enum><\/decl.function.returntype><\/decl.function.free>",
         "key.kind" : "source.lang.swift.decl.function.free",
         "key.length" : 359,
@@ -10282,7 +10261,7 @@
         ],
         "key.bodylength" : 272,
         "key.bodyoffset" : 645,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Assertions.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Assertions.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> listablePrecondition<\/decl.name>(_<\/decl.var.parameter.argument_label> condition<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> message<\/decl.var.parameter.name>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> String<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type> = String()<\/decl.var.parameter>, file<\/decl.var.parameter.argument_label>: StaticString<\/ref.struct><\/decl.var.parameter.type> = #file<\/syntaxtype.keyword><\/decl.var.parameter>, line<\/decl.var.parameter.argument_label>: UInt<\/ref.struct><\/decl.var.parameter.type> = #line<\/syntaxtype.keyword><\/decl.var.parameter>)<\/decl.function.free>",
         "key.kind" : "source.lang.swift.decl.function.free",
         "key.length" : 435,
@@ -10303,7 +10282,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/CGSize.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/CGSize.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 221,
     "key.offset" : 0,
@@ -10339,7 +10318,7 @@
             "key.annotated_decl" : "var isEmpty: Bool<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 60,
             "key.bodyoffset" : 157,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/CGSize.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/CGSize.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 81,
@@ -10362,7 +10341,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 6169,
     "key.offset" : 0,
@@ -10377,7 +10356,7 @@
             "key.offset" : 106
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
         "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> haptics<\/decl.name>: UIImpactFeedbackGenerator<\/ref.class><\/decl.var.type><\/decl.var.global>",
         "key.kind" : "source.lang.swift.decl.var.global",
         "key.length" : 54,
@@ -10421,7 +10400,7 @@
             "key.offset" : 222
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DefaultSwipeActionsView<\/decl.name> : UIView<\/ref.class>, ItemContentSwipeActionsView<\/ref.protocol><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -10451,7 +10430,7 @@
                 "key.offset" : 257
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> actionButtons<\/decl.name>: [DefaultSwipeActionButton<\/ref.class>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 50,
@@ -10477,7 +10456,7 @@
                 "key.offset" : 320
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> calculatedNaturalWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
@@ -10503,7 +10482,7 @@
                 "key.offset" : 373
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> firstAction<\/decl.name>: SwipeAction<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
@@ -10529,7 +10508,7 @@
                 "key.offset" : 415
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didPerformAction<\/decl.name>: SwipeAction<\/ref.struct>.CompletionHandler<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 51,
@@ -10557,7 +10536,7 @@
             ],
             "key.bodylength" : 59,
             "key.bodyoffset" : 519,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> swipeActionsWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 92,
@@ -10587,7 +10566,7 @@
                 "key.offset" : 585
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> state<\/decl.name>: SwipeActionState<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 37,
@@ -10615,7 +10594,7 @@
             ],
             "key.bodylength" : 116,
             "key.bodyoffset" : 708,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(didPerformAction<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> SwipeAction<\/ref.struct>.CompletionHandler<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 182,
@@ -10655,7 +10634,7 @@
             ],
             "key.bodylength" : 65,
             "key.bodyoffset" : 863,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "required<\/syntaxtype.keyword> init<\/syntaxtype.keyword>?(coder<\/decl.var.parameter.argument_label>: NSCoder<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 89,
@@ -10703,7 +10682,7 @@
             ],
             "key.bodylength" : 2336,
             "key.bodyoffset" : 974,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 2360,
@@ -10725,7 +10704,7 @@
                 "key.annotated_decl" : "func xOriginForButton(at index: Int<\/Type>) -> CGFloat<\/Type><\/Declaration>",
                 "key.bodylength" : 241,
                 "key.bodyoffset" : 1253,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> xOriginForButton<\/decl.name>(at<\/decl.var.parameter.argument_label> index<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.free>",
                 "key.kind" : "source.lang.swift.decl.function.free",
                 "key.length" : 291,
@@ -10739,7 +10718,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let previousButtons: [DefaultSwipeActionButton<\/Type>]<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> previousButtons<\/decl.name>: [DefaultSwipeActionButton<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -10756,7 +10735,7 @@
                   },
                   {
                     "key.annotated_decl" : "let position: CGFloat<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> position<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 48,
@@ -10773,7 +10752,7 @@
                   },
                   {
                     "key.annotated_decl" : "let percentOpen: CGFloat<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> percentOpen<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 50,
@@ -10810,7 +10789,7 @@
             ],
             "key.bodylength" : 142,
             "key.bodyoffset" : 3395,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> width<\/decl.name>(ofButtons<\/decl.var.parameter.argument_label> buttons<\/decl.var.parameter.name>: [DefaultSwipeActionButton<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 213,
@@ -10840,7 +10819,7 @@
             ],
             "key.bodylength" : 801,
             "key.bodyoffset" : 3599,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> apply<\/decl.name>(actions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 850,
@@ -10880,7 +10859,7 @@
             ],
             "key.bodylength" : 601,
             "key.bodyoffset" : 4451,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> apply<\/decl.name>(state<\/decl.var.parameter.argument_label>: SwipeActionState<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 639,
@@ -10932,7 +10911,7 @@
             "key.offset" : 5097
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
         "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DefaultSwipeActionButton<\/decl.name> : UIButton<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -10959,7 +10938,7 @@
                 "key.offset" : 5113
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> inset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -10984,7 +10963,7 @@
                 "key.offset" : 5149
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> action<\/decl.name>: SwipeAction<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 24,
@@ -11015,7 +10994,7 @@
                 "key.offset" : 5186
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didPerformAction<\/decl.name>: ((Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Void<\/ref.typealias><\/decl.function.returntype><\/tuple.element.type><\/tuple.element>)<\/tuple>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
@@ -11043,7 +11022,7 @@
             ],
             "key.bodylength" : 301,
             "key.bodyoffset" : 5269,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 323,
@@ -11104,7 +11083,7 @@
             ],
             "key.bodylength" : 65,
             "key.bodyoffset" : 5609,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "required<\/syntaxtype.keyword> init<\/syntaxtype.keyword>?(coder<\/decl.var.parameter.argument_label>: NSCoder<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 89,
@@ -11164,7 +11143,7 @@
             "key.annotated_decl" : "func set(action: SwipeAction<\/Type>, didPerformAction: @escaping SwipeAction<\/Type>.CompletionHandler<\/Type>)<\/Declaration>",
             "key.bodylength" : 222,
             "key.bodyoffset" : 5771,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(action<\/decl.var.parameter.argument_label>: SwipeAction<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, didPerformAction<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> SwipeAction<\/ref.struct>.CompletionHandler<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 313,
@@ -11199,7 +11178,7 @@
             ],
             "key.bodylength" : 137,
             "key.bodyoffset" : 6028,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/DefaultSwipeView.swift",
             "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onTap<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 152,
@@ -11225,31 +11204,31 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 17795,
+    "key.length" : 19105,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.accessibility" : "source.lang.swift.accessibility.internal",
         "key.annotated_decl" : "struct ArrayDiff<Element, Identifier> where Identifier : Hashable<\/Type><\/Declaration>",
-        "key.bodylength" : 7693,
+        "key.bodylength" : 9006,
         "key.bodyoffset" : 156,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 7742,
+        "key.length" : 9055,
         "key.name" : "ArrayDiff",
         "key.namelength" : 9,
         "key.nameoffset" : 115,
         "key.offset" : 108,
         "key.parsed_declaration" : "struct ArrayDiff",
-        "key.parsed_scope.end" : 271,
+        "key.parsed_scope.end" : 319,
         "key.parsed_scope.start" : 11,
         "key.substructure" : [
           {
             "key.annotated_decl" : "Element<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "Element<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 7,
@@ -11273,7 +11252,7 @@
                 "key.offset" : 145
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -11296,7 +11275,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var added: [Added<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> added<\/decl.name>: [Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -11315,7 +11294,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var removed: [Removed<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> removed<\/decl.name>: [Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -11334,7 +11313,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var moved: [Moved<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> moved<\/decl.name>: [Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -11353,7 +11332,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var updated: [Updated<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updated<\/decl.name>: [Updated<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -11372,7 +11351,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var noChange: [NoChange<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> noChange<\/decl.name>: [NoChange<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 25,
@@ -11391,7 +11370,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var changeCount: Int<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> changeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -11410,7 +11389,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let usedFastPath: Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> usedFastPath<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -11428,34 +11407,52 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.Added<\/Declaration>",
-            "key.bodylength" : 67,
+            "key.bodylength" : 112,
             "key.bodyoffset" : 387,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.Added<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 86,
+            "key.length" : 131,
             "key.name" : "Added",
             "key.namelength" : 5,
             "key.nameoffset" : 376,
             "key.offset" : 369,
             "key.parsed_declaration" : "struct Added",
-            "key.parsed_scope.end" : 29,
+            "key.parsed_scope.end" : 31,
             "key.parsed_scope.start" : 24,
             "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 27,
+                "key.name" : "identifier",
+                "key.namelength" : 10,
+                "key.nameoffset" : 400,
+                "key.offset" : 396,
+                "key.parsed_declaration" : "let identifier : Identifier",
+                "key.parsed_scope.end" : 26,
+                "key.parsed_scope.start" : 26,
+                "key.typename" : "Identifier",
+                "key.typeusr" : "$sq_D",
+                "key.usr" : "s:10ListableUI9ArrayDiffV5AddedV10identifierq_vp"
+              },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
                 "key.name" : "newIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 400,
-                "key.offset" : 396,
+                "key.nameoffset" : 445,
+                "key.offset" : 441,
                 "key.parsed_declaration" : "let newIndex : Int",
-                "key.parsed_scope.end" : 26,
-                "key.parsed_scope.start" : 26,
+                "key.parsed_scope.end" : 28,
+                "key.parsed_scope.start" : 28,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV5AddedV8newIndexSivp"
@@ -11463,17 +11460,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let new: Element<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 17,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 436,
-                "key.offset" : 432,
+                "key.nameoffset" : 481,
+                "key.offset" : 477,
                 "key.parsed_declaration" : "let new : Element",
-                "key.parsed_scope.end" : 28,
-                "key.parsed_scope.start" : 28,
+                "key.parsed_scope.end" : 30,
+                "key.parsed_scope.start" : 30,
                 "key.typename" : "Element",
                 "key.typeusr" : "$sxD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV5AddedV3newxvp"
@@ -11486,34 +11483,52 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.Removed<\/Declaration>",
-            "key.bodylength" : 67,
-            "key.bodyoffset" : 485,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodylength" : 112,
+            "key.bodyoffset" : 530,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.Removed<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 88,
+            "key.length" : 133,
             "key.name" : "Removed",
             "key.namelength" : 7,
-            "key.nameoffset" : 472,
-            "key.offset" : 465,
+            "key.nameoffset" : 517,
+            "key.offset" : 510,
             "key.parsed_declaration" : "struct Removed",
-            "key.parsed_scope.end" : 36,
-            "key.parsed_scope.start" : 31,
+            "key.parsed_scope.end" : 40,
+            "key.parsed_scope.start" : 33,
             "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 27,
+                "key.name" : "identifier",
+                "key.namelength" : 10,
+                "key.nameoffset" : 543,
+                "key.offset" : 539,
+                "key.parsed_declaration" : "let identifier : Identifier",
+                "key.parsed_scope.end" : 35,
+                "key.parsed_scope.start" : 35,
+                "key.typename" : "Identifier",
+                "key.typeusr" : "$sq_D",
+                "key.usr" : "s:10ListableUI9ArrayDiffV7RemovedV10identifierq_vp"
+              },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
                 "key.name" : "oldIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 498,
-                "key.offset" : 494,
+                "key.nameoffset" : 588,
+                "key.offset" : 584,
                 "key.parsed_declaration" : "let oldIndex : Int",
-                "key.parsed_scope.end" : 33,
-                "key.parsed_scope.start" : 33,
+                "key.parsed_scope.end" : 37,
+                "key.parsed_scope.start" : 37,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV7RemovedV8oldIndexSivp"
@@ -11521,17 +11536,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let old: Element<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 17,
                 "key.name" : "old",
                 "key.namelength" : 3,
-                "key.nameoffset" : 534,
-                "key.offset" : 530,
+                "key.nameoffset" : 624,
+                "key.offset" : 620,
                 "key.parsed_declaration" : "let old : Element",
-                "key.parsed_scope.end" : 35,
-                "key.parsed_scope.start" : 35,
+                "key.parsed_scope.end" : 39,
+                "key.parsed_scope.start" : 39,
                 "key.typename" : "Element",
                 "key.typeusr" : "$sxD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV7RemovedV3oldxvp"
@@ -11544,34 +11559,52 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.Moved<\/Declaration>",
-            "key.bodylength" : 55,
-            "key.bodyoffset" : 581,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodylength" : 100,
+            "key.bodyoffset" : 671,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.Moved<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 74,
+            "key.length" : 119,
             "key.name" : "Moved",
             "key.namelength" : 5,
-            "key.nameoffset" : 570,
-            "key.offset" : 563,
+            "key.nameoffset" : 660,
+            "key.offset" : 653,
             "key.parsed_declaration" : "struct Moved",
-            "key.parsed_scope.end" : 42,
-            "key.parsed_scope.start" : 38,
+            "key.parsed_scope.end" : 48,
+            "key.parsed_scope.start" : 42,
             "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 27,
+                "key.name" : "identifier",
+                "key.namelength" : 10,
+                "key.nameoffset" : 684,
+                "key.offset" : 680,
+                "key.parsed_declaration" : "let identifier : Identifier",
+                "key.parsed_scope.end" : 44,
+                "key.parsed_scope.start" : 44,
+                "key.typename" : "Identifier",
+                "key.typeusr" : "$sq_D",
+                "key.usr" : "s:10ListableUI9ArrayDiffV5MovedV10identifierq_vp"
+              },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let old: Removed<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Removed<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 17,
                 "key.name" : "old",
                 "key.namelength" : 3,
-                "key.nameoffset" : 594,
-                "key.offset" : 590,
+                "key.nameoffset" : 729,
+                "key.offset" : 725,
                 "key.parsed_declaration" : "let old : Removed",
-                "key.parsed_scope.end" : 40,
-                "key.parsed_scope.start" : 40,
+                "key.parsed_scope.end" : 46,
+                "key.parsed_scope.start" : 46,
                 "key.typename" : "ArrayDiff.Removed",
                 "key.typeusr" : "$s10ListableUI9ArrayDiffV7RemovedVyxq__GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV5MovedV3oldAC7RemovedVyxq__Gvp"
@@ -11579,17 +11612,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let new: Added<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Added<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 15,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 620,
-                "key.offset" : 616,
+                "key.nameoffset" : 755,
+                "key.offset" : 751,
                 "key.parsed_declaration" : "let new : Added",
-                "key.parsed_scope.end" : 41,
-                "key.parsed_scope.start" : 41,
+                "key.parsed_scope.end" : 47,
+                "key.parsed_scope.start" : 47,
                 "key.typename" : "ArrayDiff.Added",
                 "key.typeusr" : "$s10ListableUI9ArrayDiffV5AddedVyxq__GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV5MovedV3newAC5AddedVyxq__Gvp"
@@ -11602,34 +11635,52 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.Updated<\/Declaration>",
-            "key.bodylength" : 120,
-            "key.bodyoffset" : 667,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodylength" : 165,
+            "key.bodyoffset" : 802,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.Updated<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 141,
+            "key.length" : 186,
             "key.name" : "Updated",
             "key.namelength" : 7,
-            "key.nameoffset" : 654,
-            "key.offset" : 647,
+            "key.nameoffset" : 789,
+            "key.offset" : 782,
             "key.parsed_declaration" : "struct Updated",
-            "key.parsed_scope.end" : 51,
-            "key.parsed_scope.start" : 44,
+            "key.parsed_scope.end" : 59,
+            "key.parsed_scope.start" : 50,
             "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 27,
+                "key.name" : "identifier",
+                "key.namelength" : 10,
+                "key.nameoffset" : 815,
+                "key.offset" : 811,
+                "key.parsed_declaration" : "let identifier : Identifier",
+                "key.parsed_scope.end" : 52,
+                "key.parsed_scope.start" : 52,
+                "key.typename" : "Identifier",
+                "key.typeusr" : "$sq_D",
+                "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV10identifierq_vp"
+              },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
                 "key.name" : "oldIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 680,
-                "key.offset" : 676,
+                "key.nameoffset" : 860,
+                "key.offset" : 856,
                 "key.parsed_declaration" : "let oldIndex : Int",
-                "key.parsed_scope.end" : 46,
-                "key.parsed_scope.start" : 46,
+                "key.parsed_scope.end" : 54,
+                "key.parsed_scope.start" : 54,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV8oldIndexSivp"
@@ -11637,17 +11688,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
                 "key.name" : "newIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 707,
-                "key.offset" : 703,
+                "key.nameoffset" : 887,
+                "key.offset" : 883,
                 "key.parsed_declaration" : "let newIndex : Int",
-                "key.parsed_scope.end" : 47,
-                "key.parsed_scope.start" : 47,
+                "key.parsed_scope.end" : 55,
+                "key.parsed_scope.start" : 55,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV8newIndexSivp"
@@ -11655,17 +11706,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let old: Element<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 17,
                 "key.name" : "old",
                 "key.namelength" : 3,
-                "key.nameoffset" : 743,
-                "key.offset" : 739,
+                "key.nameoffset" : 923,
+                "key.offset" : 919,
                 "key.parsed_declaration" : "let old : Element",
-                "key.parsed_scope.end" : 49,
-                "key.parsed_scope.start" : 49,
+                "key.parsed_scope.end" : 57,
+                "key.parsed_scope.start" : 57,
                 "key.typename" : "Element",
                 "key.typeusr" : "$sxD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV3oldxvp"
@@ -11673,17 +11724,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let new: Element<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 17,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 769,
-                "key.offset" : 765,
+                "key.nameoffset" : 949,
+                "key.offset" : 945,
                 "key.parsed_declaration" : "let new : Element",
-                "key.parsed_scope.end" : 50,
-                "key.parsed_scope.start" : 50,
+                "key.parsed_scope.end" : 58,
+                "key.parsed_scope.start" : 58,
                 "key.typename" : "Element",
                 "key.typeusr" : "$sxD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV3newxvp"
@@ -11696,34 +11747,52 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.NoChange<\/Declaration>",
-            "key.bodylength" : 120,
-            "key.bodyoffset" : 819,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodylength" : 165,
+            "key.bodyoffset" : 999,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.NoChange<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 142,
+            "key.length" : 187,
             "key.name" : "NoChange",
             "key.namelength" : 8,
-            "key.nameoffset" : 805,
-            "key.offset" : 798,
+            "key.nameoffset" : 985,
+            "key.offset" : 978,
             "key.parsed_declaration" : "struct NoChange",
-            "key.parsed_scope.end" : 60,
-            "key.parsed_scope.start" : 53,
+            "key.parsed_scope.end" : 70,
+            "key.parsed_scope.start" : 61,
             "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let identifier: Identifier<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 27,
+                "key.name" : "identifier",
+                "key.namelength" : 10,
+                "key.nameoffset" : 1012,
+                "key.offset" : 1008,
+                "key.parsed_declaration" : "let identifier : Identifier",
+                "key.parsed_scope.end" : 63,
+                "key.parsed_scope.start" : 63,
+                "key.typename" : "Identifier",
+                "key.typeusr" : "$sq_D",
+                "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV10identifierq_vp"
+              },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
                 "key.name" : "oldIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 832,
-                "key.offset" : 828,
+                "key.nameoffset" : 1057,
+                "key.offset" : 1053,
                 "key.parsed_declaration" : "let oldIndex : Int",
-                "key.parsed_scope.end" : 55,
-                "key.parsed_scope.start" : 55,
+                "key.parsed_scope.end" : 65,
+                "key.parsed_scope.start" : 65,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV8oldIndexSivp"
@@ -11731,17 +11800,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
                 "key.name" : "newIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 859,
-                "key.offset" : 855,
+                "key.nameoffset" : 1084,
+                "key.offset" : 1080,
                 "key.parsed_declaration" : "let newIndex : Int",
-                "key.parsed_scope.end" : 56,
-                "key.parsed_scope.start" : 56,
+                "key.parsed_scope.end" : 66,
+                "key.parsed_scope.start" : 66,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV8newIndexSivp"
@@ -11749,17 +11818,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let old: Element<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 17,
                 "key.name" : "old",
                 "key.namelength" : 3,
-                "key.nameoffset" : 895,
-                "key.offset" : 891,
+                "key.nameoffset" : 1120,
+                "key.offset" : 1116,
                 "key.parsed_declaration" : "let old : Element",
-                "key.parsed_scope.end" : 58,
-                "key.parsed_scope.start" : 58,
+                "key.parsed_scope.end" : 68,
+                "key.parsed_scope.start" : 68,
                 "key.typename" : "Element",
                 "key.typeusr" : "$sxD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV3oldxvp"
@@ -11767,17 +11836,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let new: Element<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Element<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 17,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 921,
-                "key.offset" : 917,
+                "key.nameoffset" : 1146,
+                "key.offset" : 1142,
                 "key.parsed_declaration" : "let new : Element",
-                "key.parsed_scope.end" : 59,
-                "key.parsed_scope.start" : 59,
+                "key.parsed_scope.end" : 69,
+                "key.parsed_scope.start" : 69,
                 "key.typename" : "Element",
                 "key.typeusr" : "$sxD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV3newxvp"
@@ -11790,67 +11859,67 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "init(old: [Element<\/Type>], new: [Element<\/Type>], identifierProvider: (Element<\/Type>) -> Identifier<\/Type>, movedHint: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>, updated: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>)<\/Declaration>",
-            "key.bodylength" : 3868,
-            "key.bodyoffset" : 1168,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodylength" : 4515,
+            "key.bodyoffset" : 1393,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: [Element<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Element<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, identifierProvider<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, movedHint<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 4087,
+            "key.length" : 4734,
             "key.name" : "init(old:new:identifierProvider:movedHint:updated:)",
             "key.namelength" : 212,
-            "key.nameoffset" : 950,
-            "key.offset" : 950,
+            "key.nameoffset" : 1175,
+            "key.offset" : 1175,
             "key.parsed_declaration" : "init(\n    old : [Element],\n    new : [Element],\n    identifierProvider : (Element) -> Identifier,\n    movedHint : (Element, Element) -> Bool,\n    updated : (Element, Element) -> Bool\n    )",
-            "key.parsed_scope.end" : 181,
-            "key.parsed_scope.start" : 62,
+            "key.parsed_scope.end" : 211,
+            "key.parsed_scope.start" : 72,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let old: DiffableCollection<\/Type><Element, Identifier><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: DiffableCollection<\/ref.class><Element, Identifier><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 63,
                 "key.name" : "old",
                 "key.namelength" : 3,
-                "key.nameoffset" : 2012,
-                "key.offset" : 2008,
+                "key.nameoffset" : 2237,
+                "key.offset" : 2233,
                 "key.parsed_declaration" : "let old = DiffableCollection(elements: old, identifierProvider)",
-                "key.parsed_scope.end" : 97,
-                "key.parsed_scope.start" : 97,
+                "key.parsed_scope.end" : 107,
+                "key.parsed_scope.start" : 107,
                 "key.typename" : "DiffableCollection",
                 "key.typeusr" : "$s10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfcADL0_AA18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_Gvp"
               },
               {
                 "key.annotated_decl" : "let new: DiffableCollection<\/Type><Element, Identifier><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: DiffableCollection<\/ref.class><Element, Identifier><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 63,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 2084,
-                "key.offset" : 2080,
+                "key.nameoffset" : 2309,
+                "key.offset" : 2305,
                 "key.parsed_declaration" : "let new = DiffableCollection(elements: new, identifierProvider)",
-                "key.parsed_scope.end" : 98,
-                "key.parsed_scope.start" : 98,
+                "key.parsed_scope.end" : 108,
+                "key.parsed_scope.start" : 108,
                 "key.typename" : "DiffableCollection",
                 "key.typeusr" : "$s10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfcAEL0_AA18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_Gvp"
               },
               {
                 "key.annotated_decl" : "let added: [DiffContainer<\/Type><Element, Identifier>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> added<\/decl.name>: [DiffContainer<\/ref.class><Element, Identifier>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 45,
                 "key.name" : "added",
                 "key.namelength" : 5,
-                "key.nameoffset" : 2231,
-                "key.offset" : 2227,
+                "key.nameoffset" : 2456,
+                "key.offset" : 2452,
                 "key.parsed_declaration" : "let added = new.subtractDifference(from: old)",
-                "key.parsed_scope.end" : 104,
-                "key.parsed_scope.start" : 104,
+                "key.parsed_scope.end" : 114,
+                "key.parsed_scope.start" : 114,
                 "key.related_decls" : [
                   {
                     "key.annotated_decl" : "added<\/RelatedName>"
@@ -11862,17 +11931,17 @@
               },
               {
                 "key.annotated_decl" : "let removed: [DiffContainer<\/Type><Element, Identifier>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: [DiffContainer<\/ref.class><Element, Identifier>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 47,
                 "key.name" : "removed",
                 "key.namelength" : 7,
-                "key.nameoffset" : 2285,
-                "key.offset" : 2281,
+                "key.nameoffset" : 2510,
+                "key.offset" : 2506,
                 "key.parsed_declaration" : "let removed = old.subtractDifference(from: new)",
-                "key.parsed_scope.end" : 105,
-                "key.parsed_scope.start" : 105,
+                "key.parsed_scope.end" : 115,
+                "key.parsed_scope.start" : 115,
                 "key.related_decls" : [
                   {
                     "key.annotated_decl" : "removed<\/RelatedName>"
@@ -11884,68 +11953,68 @@
               },
               {
                 "key.annotated_decl" : "let pairs: [ArrayDiff<\/Type><Element, Identifier>.Pair<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> pairs<\/decl.name>: [ArrayDiff<\/ref.struct><Element, Identifier>.Pair<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 86,
                 "key.name" : "pairs",
                 "key.namelength" : 5,
-                "key.nameoffset" : 2785,
-                "key.offset" : 2781,
+                "key.nameoffset" : 3198,
+                "key.offset" : 3194,
                 "key.parsed_declaration" : "let pairs = Pair.pairs(withNew: new, old: old, movedHint: movedHint, updated: updated)",
-                "key.parsed_scope.end" : 125,
-                "key.parsed_scope.start" : 125,
+                "key.parsed_scope.end" : 143,
+                "key.parsed_scope.start" : 143,
                 "key.typename" : "[ArrayDiff.Pair]",
                 "key.typeusr" : "$sSay10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc5pairsL_SayAC4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGvp"
               },
               {
                 "key.annotated_decl" : "let moveHinted: [ArrayDiff<\/Type><Element, Identifier>.Pair<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moveHinted<\/decl.name>: [ArrayDiff<\/ref.struct><Element, Identifier>.Pair<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 76,
                 "key.name" : "moveHinted",
                 "key.namelength" : 10,
-                "key.nameoffset" : 2890,
-                "key.offset" : 2885,
+                "key.nameoffset" : 3303,
+                "key.offset" : 3298,
                 "key.parsed_declaration" : "let (moveHinted, moveNotHinted) = pairs.separate { pair in pair.moveHinted }",
-                "key.parsed_scope.end" : 127,
-                "key.parsed_scope.start" : 127,
+                "key.parsed_scope.end" : 145,
+                "key.parsed_scope.start" : 145,
                 "key.typename" : "[ArrayDiff.Pair]",
                 "key.typeusr" : "$sSay10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc10moveHintedL_SayAC4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGvp"
               },
               {
                 "key.annotated_decl" : "let moveNotHinted: [ArrayDiff<\/Type><Element, Identifier>.Pair<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moveNotHinted<\/decl.name>: [ArrayDiff<\/ref.struct><Element, Identifier>.Pair<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 76,
                 "key.name" : "moveNotHinted",
                 "key.namelength" : 13,
-                "key.nameoffset" : 2902,
-                "key.offset" : 2885,
+                "key.nameoffset" : 3315,
+                "key.offset" : 3298,
                 "key.parsed_declaration" : "let (moveHinted, moveNotHinted) = pairs.separate { pair in pair.moveHinted }",
-                "key.parsed_scope.end" : 127,
-                "key.parsed_scope.start" : 127,
+                "key.parsed_scope.end" : 145,
+                "key.parsed_scope.start" : 145,
                 "key.typename" : "[ArrayDiff.Pair]",
                 "key.typeusr" : "$sSay10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc13moveNotHintedL_SayAC4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGvp"
               },
               {
                 "key.annotated_decl" : "var sorted: [ArrayDiff<\/Type><Element, Identifier>.Pair<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sorted<\/decl.name>: [ArrayDiff<\/ref.struct><Element, Identifier>.Pair<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 21,
                 "key.name" : "sorted",
                 "key.namelength" : 6,
-                "key.nameoffset" : 3183,
-                "key.offset" : 3179,
+                "key.nameoffset" : 3596,
+                "key.offset" : 3592,
                 "key.parsed_declaration" : "var sorted = [Pair]()",
-                "key.parsed_scope.end" : 132,
-                "key.parsed_scope.start" : 132,
+                "key.parsed_scope.end" : 150,
+                "key.parsed_scope.start" : 150,
                 "key.typename" : "[ArrayDiff.Pair]",
                 "key.typeusr" : "$sSay10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV3old3new18identifierProvider9movedHint7updatedACyxq_GSayxG_AJq_xXESbx_xtXESbx_xtXEtcfc6sortedL_SayAC4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__GGvp"
@@ -11958,50 +12027,50 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "static func fastPastDiff(old: [Element<\/Type>], new: [Element<\/Type>], identifierProvider: (Element<\/Type>) -> Identifier<\/Type>, updated: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>) -> ([Updated<\/Type>], [NoChange<\/Type>])?<\/Declaration>",
-            "key.bodylength" : 745,
-            "key.bodyoffset" : 5261,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodylength" : 1186,
+            "key.bodyoffset" : 6133,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> fastPastDiff<\/decl.name>(old<\/decl.var.parameter.argument_label>: [Element<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Element<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, identifierProvider<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ([Updated<\/ref.struct>]<\/tuple.element.type><\/tuple.element>, [NoChange<\/ref.struct>]<\/tuple.element.type><\/tuple.element>)<\/tuple>?<\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 960,
+            "key.length" : 1401,
             "key.name" : "fastPastDiff(old:new:identifierProvider:updated:)",
             "key.namelength" : 168,
-            "key.nameoffset" : 5059,
-            "key.offset" : 5047,
+            "key.nameoffset" : 5931,
+            "key.offset" : 5919,
             "key.parsed_declaration" : "static func fastPastDiff(\n    old : [Element],\n    new : [Element],\n    identifierProvider : (Element) -> Identifier,\n    updated : (Element, Element) -> Bool\n) -> ([Updated], [NoChange])?",
-            "key.parsed_scope.end" : 214,
-            "key.parsed_scope.start" : 183,
+            "key.parsed_scope.end" : 262,
+            "key.parsed_scope.start" : 213,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var updates: [ArrayDiff<\/Type><Element, Identifier>.Updated<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updates<\/decl.name>: [ArrayDiff<\/ref.struct><Element, Identifier>.Updated<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 25,
                 "key.name" : "updates",
                 "key.namelength" : 7,
-                "key.nameoffset" : 5360,
-                "key.offset" : 5356,
+                "key.nameoffset" : 6232,
+                "key.offset" : 6228,
                 "key.parsed_declaration" : "var updates = [Updated]()",
-                "key.parsed_scope.end" : 194,
-                "key.parsed_scope.start" : 194,
+                "key.parsed_scope.end" : 224,
+                "key.parsed_scope.start" : 224,
                 "key.typename" : "[ArrayDiff.Updated]",
                 "key.typeusr" : "$sSay10ListableUI9ArrayDiffV7UpdatedVyxq__GGD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV08fastPastD03old3new18identifierProvider7updatedSayAC7UpdatedVyxq__GG_SayAC8NoChangeVyxq__GGtSgSayxG_ARq_xXESbx_xtXEtFZ7updatesL_ALvp"
               },
               {
                 "key.annotated_decl" : "var notChanged: [ArrayDiff<\/Type><Element, Identifier>.NoChange<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> notChanged<\/decl.name>: [ArrayDiff<\/ref.struct><Element, Identifier>.NoChange<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 29,
                 "key.name" : "notChanged",
                 "key.namelength" : 10,
-                "key.nameoffset" : 5403,
-                "key.offset" : 5399,
+                "key.nameoffset" : 6275,
+                "key.offset" : 6271,
                 "key.parsed_declaration" : "var notChanged = [NoChange]()",
-                "key.parsed_scope.end" : 196,
-                "key.parsed_scope.start" : 196,
+                "key.parsed_scope.end" : 226,
+                "key.parsed_scope.start" : 226,
                 "key.typename" : "[ArrayDiff.NoChange]",
                 "key.typeusr" : "$sSay10ListableUI9ArrayDiffV8NoChangeVyxq__GGD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV08fastPastD03old3new18identifierProvider7updatedSayAC7UpdatedVyxq__GG_SayAC8NoChangeVyxq__GGtSgSayxG_ARq_xXESbx_xtXEtFZ10notChangedL_APvp"
@@ -12018,42 +12087,42 @@
               {
                 "key.attribute" : "source.decl.attribute.final",
                 "key.length" : 5,
-                "key.offset" : 6025
+                "key.offset" : 7338
               },
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 6017
+                "key.offset" : 7330
               }
             ],
             "key.bodylength" : 1800,
-            "key.bodyoffset" : 6047,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 7360,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.Pair<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 1817,
             "key.name" : "Pair",
             "key.namelength" : 4,
-            "key.nameoffset" : 6037,
-            "key.offset" : 6031,
+            "key.nameoffset" : 7350,
+            "key.offset" : 7344,
             "key.parsed_declaration" : "private final class Pair",
-            "key.parsed_scope.end" : 270,
-            "key.parsed_scope.start" : 216,
+            "key.parsed_scope.end" : 318,
+            "key.parsed_scope.start" : 264,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let new: DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 44,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 6060,
-                "key.offset" : 6056,
+                "key.nameoffset" : 7373,
+                "key.offset" : 7369,
                 "key.parsed_declaration" : "let new : DiffContainer",
-                "key.parsed_scope.end" : 218,
-                "key.parsed_scope.start" : 218,
+                "key.parsed_scope.end" : 266,
+                "key.parsed_scope.start" : 266,
                 "key.typename" : "DiffContainer",
                 "key.typeusr" : "$s10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC3newAA0D9ContainerAELLCyxq_Gvp"
@@ -12061,17 +12130,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let old: DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 44,
                 "key.name" : "old",
                 "key.namelength" : 3,
-                "key.nameoffset" : 6113,
-                "key.offset" : 6109,
+                "key.nameoffset" : 7426,
+                "key.offset" : 7422,
                 "key.parsed_declaration" : "let old : DiffContainer",
-                "key.parsed_scope.end" : 219,
-                "key.parsed_scope.start" : 219,
+                "key.parsed_scope.end" : 267,
+                "key.parsed_scope.start" : 267,
                 "key.typename" : "DiffContainer",
                 "key.typeusr" : "$s10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC3oldAA0D9ContainerAELLCyxq_Gvp"
@@ -12079,17 +12148,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let identifier: UniqueIdentifier<\/Type><Element<\/Type>, Identifier<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: UniqueIdentifier<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 54,
                 "key.name" : "identifier",
                 "key.namelength" : 10,
-                "key.nameoffset" : 6175,
-                "key.offset" : 6171,
+                "key.nameoffset" : 7488,
+                "key.offset" : 7484,
                 "key.parsed_declaration" : "let identifier : UniqueIdentifier",
-                "key.parsed_scope.end" : 221,
-                "key.parsed_scope.start" : 221,
+                "key.parsed_scope.end" : 269,
+                "key.parsed_scope.start" : 269,
                 "key.typename" : "UniqueIdentifier",
                 "key.typeusr" : "$s10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC10identifierAA16UniqueIdentifierAELLVyxq_Gvp"
@@ -12097,17 +12166,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let distance: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> distance<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
                 "key.name" : "distance",
                 "key.namelength" : 8,
-                "key.nameoffset" : 6247,
-                "key.offset" : 6243,
+                "key.nameoffset" : 7560,
+                "key.offset" : 7556,
                 "key.parsed_declaration" : "let distance : Int",
-                "key.parsed_scope.end" : 223,
-                "key.parsed_scope.start" : 223,
+                "key.parsed_scope.end" : 271,
+                "key.parsed_scope.start" : 271,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC8distanceSivp"
@@ -12115,17 +12184,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let moveHinted: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moveHinted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
                 "key.name" : "moveHinted",
                 "key.namelength" : 10,
-                "key.nameoffset" : 6283,
-                "key.offset" : 6279,
+                "key.nameoffset" : 7596,
+                "key.offset" : 7592,
                 "key.parsed_declaration" : "let moveHinted : Bool",
-                "key.parsed_scope.end" : 225,
-                "key.parsed_scope.start" : 225,
+                "key.parsed_scope.end" : 273,
+                "key.parsed_scope.start" : 273,
                 "key.typename" : "Bool",
                 "key.typeusr" : "$sSbD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC10moveHintedSbvp"
@@ -12133,17 +12202,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let updated: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> updated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
                 "key.name" : "updated",
                 "key.namelength" : 7,
-                "key.nameoffset" : 6313,
-                "key.offset" : 6309,
+                "key.nameoffset" : 7626,
+                "key.offset" : 7622,
                 "key.parsed_declaration" : "let updated : Bool",
-                "key.parsed_scope.end" : 226,
-                "key.parsed_scope.start" : 226,
+                "key.parsed_scope.end" : 274,
+                "key.parsed_scope.start" : 274,
                 "key.typename" : "Bool",
                 "key.typeusr" : "$sSbD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV4Pair33_C15E326CC9B009491D3ADB78FA7FFECBLLC7updatedSbvp"
@@ -12152,18 +12221,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "init(new: DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>>, old: DiffContainer<\/Type><Element<\/Type>, Identifier<\/Type>>, identifier: UniqueIdentifier<\/Type><Element<\/Type>, Identifier<\/Type>>, distance: Int<\/Type>, moveHinted: Bool<\/Type>, updated: Bool<\/Type>)<\/Declaration>",
                 "key.bodylength" : 256,
-                "key.bodyoffset" : 6632,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.bodyoffset" : 7945,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(new<\/decl.var.parameter.argument_label>: DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, old<\/decl.var.parameter.argument_label>: DiffContainer<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, identifier<\/decl.var.parameter.argument_label>: UniqueIdentifier<\/ref.struct><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, distance<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, moveHinted<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 544,
                 "key.name" : "init(new:old:identifier:distance:moveHinted:updated:)",
                 "key.namelength" : 277,
-                "key.nameoffset" : 6345,
-                "key.offset" : 6345,
+                "key.nameoffset" : 7658,
+                "key.offset" : 7658,
                 "key.parsed_declaration" : "init(\n    new : DiffContainer,\n    old : DiffContainer,\n    identifier : UniqueIdentifier,\n    distance : Int,\n    moveHinted : Bool,\n    updated : Bool\n    )",
-                "key.parsed_scope.end" : 246,
-                "key.parsed_scope.start" : 228,
+                "key.parsed_scope.end" : 294,
+                "key.parsed_scope.start" : 276,
                 "key.substructure" : [
 
                 ],
@@ -12175,18 +12244,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "static func pairs(withNew new: DiffableCollection<\/Type><Element<\/Type>, Identifier<\/Type>>, old: DiffableCollection<\/Type><Element<\/Type>, Identifier<\/Type>>, movedHint: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>, updated: (Element<\/Type>, Element<\/Type>) -> Bool<\/Type>) -> [Pair<\/Type>]<\/Declaration>",
                 "key.bodylength" : 655,
-                "key.bodyoffset" : 7186,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.bodyoffset" : 8499,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> pairs<\/decl.name>(withNew<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: DiffableCollection<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, old<\/decl.var.parameter.argument_label>: DiffableCollection<\/ref.class><Element<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, movedHint<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Pair<\/ref.class>]<\/decl.function.returntype><\/decl.function.method.static>",
                 "key.kind" : "source.lang.swift.decl.function.method.static",
                 "key.length" : 935,
                 "key.name" : "pairs(withNew:old:movedHint:updated:)",
                 "key.namelength" : 247,
-                "key.nameoffset" : 6919,
-                "key.offset" : 6907,
+                "key.nameoffset" : 8232,
+                "key.offset" : 8220,
                 "key.parsed_declaration" : "static func pairs(\n    withNew new : DiffableCollection,\n    old : DiffableCollection,\n    movedHint : (Element, Element) -> Bool,\n    updated : (Element, Element) -> Bool\n    ) -> [Pair]",
-                "key.parsed_scope.end" : 269,
-                "key.parsed_scope.start" : 248,
+                "key.parsed_scope.end" : 317,
+                "key.parsed_scope.start" : 296,
                 "key.substructure" : [
 
                 ],
@@ -12207,15 +12276,15 @@
       {
         "key.annotated_decl" : "struct ArrayDiff<Element, Identifier> where Identifier : Hashable<\/Type><\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 7911,
+        "key.bodyoffset" : 9224,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 7874
+            "key.offset" : 9187
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -12226,11 +12295,11 @@
         "key.length" : 60,
         "key.name" : "ArrayDiff",
         "key.namelength" : 9,
-        "key.nameoffset" : 7862,
-        "key.offset" : 7852,
+        "key.nameoffset" : 9175,
+        "key.offset" : 9165,
         "key.parsed_declaration" : "extension ArrayDiff : Equatable where Element : Equatable",
-        "key.parsed_scope.end" : 273,
-        "key.parsed_scope.start" : 273,
+        "key.parsed_scope.end" : 321,
+        "key.parsed_scope.start" : 321,
         "key.typename" : "ArrayDiff.Type",
         "key.typeusr" : "$s10ListableUI9ArrayDiffVyxq_GmD",
         "key.usr" : "s:10ListableUI9ArrayDiffV"
@@ -12238,15 +12307,15 @@
       {
         "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.Added<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 7979,
+        "key.bodyoffset" : 9292,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 7942
+            "key.offset" : 9255
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.Added<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -12257,11 +12326,11 @@
         "key.length" : 66,
         "key.name" : "ArrayDiff.Added",
         "key.namelength" : 15,
-        "key.nameoffset" : 7924,
-        "key.offset" : 7914,
+        "key.nameoffset" : 9237,
+        "key.offset" : 9227,
         "key.parsed_declaration" : "extension ArrayDiff.Added : Equatable where Element : Equatable",
-        "key.parsed_scope.end" : 275,
-        "key.parsed_scope.start" : 275,
+        "key.parsed_scope.end" : 323,
+        "key.parsed_scope.start" : 323,
         "key.typename" : "ArrayDiff.Added.Type",
         "key.typeusr" : "$s10ListableUI9ArrayDiffV5AddedVyxq__GmD",
         "key.usr" : "s:10ListableUI9ArrayDiffV5AddedV"
@@ -12269,15 +12338,15 @@
       {
         "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.Removed<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 8048,
+        "key.bodyoffset" : 9361,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 8011
+            "key.offset" : 9324
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.Removed<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -12288,11 +12357,11 @@
         "key.length" : 68,
         "key.name" : "ArrayDiff.Removed",
         "key.namelength" : 17,
-        "key.nameoffset" : 7991,
-        "key.offset" : 7981,
+        "key.nameoffset" : 9304,
+        "key.offset" : 9294,
         "key.parsed_declaration" : "extension ArrayDiff.Removed : Equatable where Element : Equatable",
-        "key.parsed_scope.end" : 276,
-        "key.parsed_scope.start" : 276,
+        "key.parsed_scope.end" : 324,
+        "key.parsed_scope.start" : 324,
         "key.typename" : "ArrayDiff.Removed.Type",
         "key.typeusr" : "$s10ListableUI9ArrayDiffV7RemovedVyxq__GmD",
         "key.usr" : "s:10ListableUI9ArrayDiffV7RemovedV"
@@ -12300,15 +12369,15 @@
       {
         "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.Moved<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 8115,
+        "key.bodyoffset" : 9428,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 8078
+            "key.offset" : 9391
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.Moved<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -12319,11 +12388,11 @@
         "key.length" : 66,
         "key.name" : "ArrayDiff.Moved",
         "key.namelength" : 15,
-        "key.nameoffset" : 8060,
-        "key.offset" : 8050,
+        "key.nameoffset" : 9373,
+        "key.offset" : 9363,
         "key.parsed_declaration" : "extension ArrayDiff.Moved : Equatable where Element : Equatable",
-        "key.parsed_scope.end" : 277,
-        "key.parsed_scope.start" : 277,
+        "key.parsed_scope.end" : 325,
+        "key.parsed_scope.start" : 325,
         "key.typename" : "ArrayDiff.Moved.Type",
         "key.typeusr" : "$s10ListableUI9ArrayDiffV5MovedVyxq__GmD",
         "key.usr" : "s:10ListableUI9ArrayDiffV5MovedV"
@@ -12331,15 +12400,15 @@
       {
         "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.Updated<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 8184,
+        "key.bodyoffset" : 9497,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 8147
+            "key.offset" : 9460
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.Updated<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -12350,11 +12419,11 @@
         "key.length" : 68,
         "key.name" : "ArrayDiff.Updated",
         "key.namelength" : 17,
-        "key.nameoffset" : 8127,
-        "key.offset" : 8117,
+        "key.nameoffset" : 9440,
+        "key.offset" : 9430,
         "key.parsed_declaration" : "extension ArrayDiff.Updated : Equatable where Element : Equatable",
-        "key.parsed_scope.end" : 278,
-        "key.parsed_scope.start" : 278,
+        "key.parsed_scope.end" : 326,
+        "key.parsed_scope.start" : 326,
         "key.typename" : "ArrayDiff.Updated.Type",
         "key.typeusr" : "$s10ListableUI9ArrayDiffV7UpdatedVyxq__GmD",
         "key.usr" : "s:10ListableUI9ArrayDiffV7UpdatedV"
@@ -12362,15 +12431,15 @@
       {
         "key.annotated_decl" : "struct ArrayDiff<\/Type><Element, Identifier>.NoChange<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 8254,
+        "key.bodyoffset" : 9567,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 8217
+            "key.offset" : 9530
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/ref.struct><Element, Identifier>.NoChange<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -12381,11 +12450,11 @@
         "key.length" : 69,
         "key.name" : "ArrayDiff.NoChange",
         "key.namelength" : 18,
-        "key.nameoffset" : 8196,
-        "key.offset" : 8186,
+        "key.nameoffset" : 9509,
+        "key.offset" : 9499,
         "key.parsed_declaration" : "extension ArrayDiff.NoChange : Equatable where Element : Equatable",
-        "key.parsed_scope.end" : 279,
-        "key.parsed_scope.start" : 279,
+        "key.parsed_scope.end" : 327,
+        "key.parsed_scope.start" : 327,
         "key.typename" : "ArrayDiff.NoChange.Type",
         "key.typeusr" : "$s10ListableUI9ArrayDiffV8NoChangeVyxq__GmD",
         "key.usr" : "s:10ListableUI9ArrayDiffV8NoChangeV"
@@ -12393,99 +12462,99 @@
       {
         "key.annotated_decl" : "struct ArrayDiff<Element, Identifier> where Identifier : Hashable<\/Type><\/Declaration>",
         "key.bodylength" : 2918,
-        "key.bodyoffset" : 8279,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.bodyoffset" : 9592,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ArrayDiff<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 2940,
         "key.name" : "ArrayDiff",
         "key.namelength" : 9,
-        "key.nameoffset" : 8268,
-        "key.offset" : 8258,
+        "key.nameoffset" : 9581,
+        "key.offset" : 9571,
         "key.parsed_declaration" : "extension ArrayDiff",
-        "key.parsed_scope.end" : 385,
-        "key.parsed_scope.start" : 282,
+        "key.parsed_scope.end" : 433,
+        "key.parsed_scope.start" : 330,
         "key.substructure" : [
           {
             "key.annotated_decl" : "func transform<Mapped>(old: [Mapped<\/Type>], removed: (Element<\/Type>, Mapped<\/Type>) -> (), added: (Element<\/Type>) -> Mapped<\/Type>, moved: (Element<\/Type>, Element<\/Type>, inout Mapped<\/Type>) -> (), updated: (Element<\/Type>, Element<\/Type>, inout Mapped<\/Type>) -> (), noChange: (Element<\/Type>, Element<\/Type>, inout Mapped<\/Type>) -> ()) -> [Mapped<\/Type>]<\/Declaration>",
             "key.bodylength" : 2068,
-            "key.bodyoffset" : 8611,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 9924,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> transform<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(old<\/decl.var.parameter.argument_label>: [Mapped<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, removed<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, added<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, moved<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, noChange<\/decl.var.parameter.argument_label>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 2396,
             "key.name" : "transform(old:removed:added:moved:updated:noChange:)",
             "key.namelength" : 304,
-            "key.nameoffset" : 8289,
-            "key.offset" : 8284,
+            "key.nameoffset" : 9602,
+            "key.offset" : 9597,
             "key.parsed_declaration" : "func transform(\n    old : [Mapped],\n    removed : (Element, Mapped) -> (),\n    added : (Element) -> Mapped,\n    moved : (Element, Element, inout Mapped) -> (),\n    updated : (Element, Element, inout Mapped) -> (),\n    noChange : (Element, Element, inout Mapped) -> ()\n    ) -> [Mapped]",
-            "key.parsed_scope.end" : 360,
-            "key.parsed_scope.start" : 284,
+            "key.parsed_scope.end" : 408,
+            "key.parsed_scope.start" : 332,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
                 "key.name" : "Mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 8299,
-                "key.offset" : 8299,
+                "key.nameoffset" : 9612,
+                "key.offset" : 9612,
                 "key.parsed_declaration" : "func transformvar removes: [ArrayDiff<\/Type><Element, Identifier>.Removal<\/Type><Mapped>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> removes<\/decl.name>: [ArrayDiff<\/ref.struct><Element, Identifier>.Removal<\/ref.class><Mapped>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 33,
                 "key.name" : "removes",
                 "key.namelength" : 7,
-                "key.nameoffset" : 8785,
-                "key.offset" : 8781,
+                "key.nameoffset" : 10098,
+                "key.offset" : 10094,
                 "key.parsed_declaration" : "var removes = [Removal]()",
-                "key.parsed_scope.end" : 297,
-                "key.parsed_scope.start" : 297,
+                "key.parsed_scope.end" : 345,
+                "key.parsed_scope.start" : 345,
                 "key.typename" : "[ArrayDiff.Removal]",
                 "key.typeusr" : "$sSay10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GGD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV9transform3old7removed5added5moved7updated8noChangeSayqd__GAK_yx_qd__tXEqd__xXEyx_xqd__ztXEyx_xqd__ztXEyx_xqd__ztXEtlF7removesL_SayAC7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GGvp"
               },
               {
                 "key.annotated_decl" : "var inserts: [ArrayDiff<\/Type><Element, Identifier>.Insertion<\/Type><Mapped>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> inserts<\/decl.name>: [ArrayDiff<\/ref.struct><Element, Identifier>.Insertion<\/ref.class><Mapped>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 35,
                 "key.name" : "inserts",
                 "key.namelength" : 7,
-                "key.nameoffset" : 9316,
-                "key.offset" : 9312,
+                "key.nameoffset" : 10629,
+                "key.offset" : 10625,
                 "key.parsed_declaration" : "var inserts = [Insertion]()",
-                "key.parsed_scope.end" : 313,
-                "key.parsed_scope.start" : 313,
+                "key.parsed_scope.end" : 361,
+                "key.parsed_scope.start" : 361,
                 "key.typename" : "[ArrayDiff.Insertion]",
                 "key.typeusr" : "$sSay10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GGD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV9transform3old7removed5added5moved7updated8noChangeSayqd__GAK_yx_qd__tXEqd__xXEyx_xqd__ztXEyx_xqd__ztXEyx_xqd__ztXEtlF7insertsL_SayAC9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq__qd__GGvp"
               },
               {
                 "key.annotated_decl" : "var new: [Mapped]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: [Mapped]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 13,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 9928,
-                "key.offset" : 9924,
+                "key.nameoffset" : 11241,
+                "key.offset" : 11237,
                 "key.parsed_declaration" : "var new = old",
-                "key.parsed_scope.end" : 331,
-                "key.parsed_scope.start" : 331,
+                "key.parsed_scope.end" : 379,
+                "key.parsed_scope.start" : 379,
                 "key.typename" : "[Mapped]",
                 "key.typeusr" : "$sSayqd__GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV9transform3old7removed5added5moved7updated8noChangeSayqd__GAK_yx_qd__tXEqd__xXEyx_xqd__ztXEyx_xqd__ztXEyx_xqd__ztXEtlF3newL_AKvp"
@@ -12502,41 +12571,41 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 10696
+                "key.offset" : 12009
               },
               {
                 "key.attribute" : "source.decl.attribute.final",
                 "key.length" : 5,
-                "key.offset" : 10690
+                "key.offset" : 12003
               }
             ],
             "key.bodylength" : 201,
-            "key.bodyoffset" : 10733,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 12046,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Insertion<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 231,
             "key.name" : "Insertion",
             "key.namelength" : 9,
-            "key.nameoffset" : 10710,
-            "key.offset" : 10704,
+            "key.nameoffset" : 12023,
+            "key.offset" : 12017,
             "key.parsed_declaration" : "final private class Insertion",
-            "key.parsed_scope.end" : 372,
-            "key.parsed_scope.start" : 362,
+            "key.parsed_scope.end" : 420,
+            "key.parsed_scope.start" : 410,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
                 "key.name" : "Mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 10720,
-                "key.offset" : 10720,
+                "key.nameoffset" : 12033,
+                "key.offset" : 12033,
                 "key.parsed_declaration" : "final private class Insertionlet mapped: Mapped<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
                 "key.name" : "mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 10746,
-                "key.offset" : 10742,
+                "key.nameoffset" : 12059,
+                "key.offset" : 12055,
                 "key.parsed_declaration" : "let mapped : Mapped",
-                "key.parsed_scope.end" : 364,
-                "key.parsed_scope.start" : 364,
+                "key.parsed_scope.end" : 412,
+                "key.parsed_scope.start" : 412,
                 "key.typename" : "Mapped",
                 "key.typeusr" : "$sqd__D",
                 "key.usr" : "s:10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLC6mappedqd__vp"
@@ -12562,17 +12631,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let insert: Added<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insert<\/decl.name>: Added<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
                 "key.name" : "insert",
                 "key.namelength" : 6,
-                "key.nameoffset" : 10774,
-                "key.offset" : 10770,
+                "key.nameoffset" : 12087,
+                "key.offset" : 12083,
                 "key.parsed_declaration" : "let insert : Added",
-                "key.parsed_scope.end" : 365,
-                "key.parsed_scope.start" : 365,
+                "key.parsed_scope.end" : 413,
+                "key.parsed_scope.start" : 413,
                 "key.typename" : "ArrayDiff.Added",
                 "key.typeusr" : "$s10ListableUI9ArrayDiffV5AddedVyxq__GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV9Insertion33_C15E326CC9B009491D3ADB78FA7FFECBLLC6insertAC5AddedVyxq__Gvp"
@@ -12581,18 +12650,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "init(mapped: Mapped<\/Type>, insert: Added<\/Type>)<\/Declaration>",
                 "key.bodylength" : 75,
-                "key.bodyoffset" : 10853,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.bodyoffset" : 12166,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(mapped<\/decl.var.parameter.argument_label>: Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, insert<\/decl.var.parameter.argument_label>: Added<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 123,
                 "key.name" : "init(mapped:insert:)",
                 "key.namelength" : 37,
-                "key.nameoffset" : 10806,
-                "key.offset" : 10806,
+                "key.nameoffset" : 12119,
+                "key.offset" : 12119,
                 "key.parsed_declaration" : "init(mapped : Mapped, insert : Added)",
-                "key.parsed_scope.end" : 371,
-                "key.parsed_scope.start" : 367,
+                "key.parsed_scope.end" : 419,
+                "key.parsed_scope.start" : 415,
                 "key.substructure" : [
 
                 ],
@@ -12612,41 +12681,41 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 10951
+                "key.offset" : 12264
               },
               {
                 "key.attribute" : "source.decl.attribute.final",
                 "key.length" : 5,
-                "key.offset" : 10945
+                "key.offset" : 12258
               }
             ],
             "key.bodylength" : 209,
-            "key.bodyoffset" : 10986,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 12299,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Removal<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 237,
             "key.name" : "Removal",
             "key.namelength" : 7,
-            "key.nameoffset" : 10965,
-            "key.offset" : 10959,
+            "key.nameoffset" : 12278,
+            "key.offset" : 12272,
             "key.parsed_declaration" : "final private class Removal",
-            "key.parsed_scope.end" : 384,
-            "key.parsed_scope.start" : 374,
+            "key.parsed_scope.end" : 432,
+            "key.parsed_scope.start" : 422,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
                 "key.name" : "Mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 10973,
-                "key.offset" : 10973,
+                "key.nameoffset" : 12286,
+                "key.offset" : 12286,
                 "key.parsed_declaration" : "final private class Removallet mapped: Mapped<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
                 "key.name" : "mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 10999,
-                "key.offset" : 10995,
+                "key.nameoffset" : 12312,
+                "key.offset" : 12308,
                 "key.parsed_declaration" : "let mapped : Mapped",
-                "key.parsed_scope.end" : 376,
-                "key.parsed_scope.start" : 376,
+                "key.parsed_scope.end" : 424,
+                "key.parsed_scope.start" : 424,
                 "key.typename" : "Mapped",
                 "key.typeusr" : "$sqd__D",
                 "key.usr" : "s:10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLC6mappedqd__vp"
@@ -12672,17 +12741,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let removed: Removed<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: Removed<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
                 "key.name" : "removed",
                 "key.namelength" : 7,
-                "key.nameoffset" : 11027,
-                "key.offset" : 11023,
+                "key.nameoffset" : 12340,
+                "key.offset" : 12336,
                 "key.parsed_declaration" : "let removed : Removed",
-                "key.parsed_scope.end" : 377,
-                "key.parsed_scope.start" : 377,
+                "key.parsed_scope.end" : 425,
+                "key.parsed_scope.start" : 425,
                 "key.typename" : "ArrayDiff.Removed",
                 "key.typeusr" : "$s10ListableUI9ArrayDiffV7RemovedVyxq__GD",
                 "key.usr" : "s:10ListableUI9ArrayDiffV7Removal33_C15E326CC9B009491D3ADB78FA7FFECBLLC7removedAC7RemovedVyxq__Gvp"
@@ -12691,18 +12760,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "init(mapped: Mapped<\/Type>, removed: Removed<\/Type>)<\/Declaration>",
                 "key.bodylength" : 77,
-                "key.bodyoffset" : 11112,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.bodyoffset" : 12425,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(mapped<\/decl.var.parameter.argument_label>: Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, removed<\/decl.var.parameter.argument_label>: Removed<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 128,
                 "key.name" : "init(mapped:removed:)",
                 "key.namelength" : 40,
-                "key.nameoffset" : 11062,
-                "key.offset" : 11062,
+                "key.nameoffset" : 12375,
+                "key.offset" : 12375,
                 "key.parsed_declaration" : "init(mapped : Mapped, removed : Removed)",
-                "key.parsed_scope.end" : 383,
-                "key.parsed_scope.start" : 379,
+                "key.parsed_scope.end" : 431,
+                "key.parsed_scope.start" : 427,
                 "key.substructure" : [
 
                 ],
@@ -12727,36 +12796,36 @@
           {
             "key.attribute" : "source.decl.attribute.private",
             "key.length" : 7,
-            "key.offset" : 11201
+            "key.offset" : 12514
           }
         ],
         "key.bodylength" : 1022,
-        "key.bodyoffset" : 11258,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.bodyoffset" : 12571,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DiffContainer<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 1072,
         "key.name" : "DiffContainer",
         "key.namelength" : 13,
-        "key.nameoffset" : 11215,
-        "key.offset" : 11209,
+        "key.nameoffset" : 12528,
+        "key.offset" : 12522,
         "key.parsed_declaration" : "private class DiffContainer",
-        "key.parsed_scope.end" : 421,
-        "key.parsed_scope.start" : 388,
+        "key.parsed_scope.end" : 469,
+        "key.parsed_scope.start" : 436,
         "key.substructure" : [
           {
             "key.annotated_decl" : "Value<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 5,
             "key.name" : "Value",
             "key.namelength" : 5,
-            "key.nameoffset" : 11229,
-            "key.offset" : 11229,
+            "key.nameoffset" : 12542,
+            "key.offset" : 12542,
             "key.parsed_declaration" : "private class DiffContainerIdentifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -12781,11 +12850,11 @@
             "key.length" : 19,
             "key.name" : "Identifier",
             "key.namelength" : 10,
-            "key.nameoffset" : 11236,
-            "key.offset" : 11236,
+            "key.nameoffset" : 12549,
+            "key.offset" : 12549,
             "key.parsed_declaration" : "private class DiffContainerlet identifier: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 52,
             "key.name" : "identifier",
             "key.namelength" : 10,
-            "key.nameoffset" : 11267,
-            "key.offset" : 11263,
+            "key.nameoffset" : 12580,
+            "key.offset" : 12576,
             "key.parsed_declaration" : "let identifier : UniqueIdentifier",
-            "key.parsed_scope.end" : 390,
-            "key.parsed_scope.start" : 390,
+            "key.parsed_scope.end" : 438,
+            "key.parsed_scope.start" : 438,
             "key.typename" : "UniqueIdentifier",
             "key.typeusr" : "$s10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_GD",
             "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC10identifierAA16UniqueIdentifierACLLVyxq_Gvp"
@@ -12811,17 +12880,17 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let value: Value<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> value<\/decl.name>: Value<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 17,
             "key.name" : "value",
             "key.namelength" : 5,
-            "key.nameoffset" : 11324,
-            "key.offset" : 11320,
+            "key.nameoffset" : 12637,
+            "key.offset" : 12633,
             "key.parsed_declaration" : "let value : Value",
-            "key.parsed_scope.end" : 391,
-            "key.parsed_scope.start" : 391,
+            "key.parsed_scope.end" : 439,
+            "key.parsed_scope.start" : 439,
             "key.typename" : "Value",
             "key.typeusr" : "$sxD",
             "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC5valuexvp"
@@ -12829,17 +12898,17 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let index: Int<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 15,
             "key.name" : "index",
             "key.namelength" : 5,
-            "key.nameoffset" : 11346,
-            "key.offset" : 11342,
+            "key.nameoffset" : 12659,
+            "key.offset" : 12655,
             "key.parsed_declaration" : "let index : Int",
-            "key.parsed_scope.end" : 392,
-            "key.parsed_scope.start" : 392,
+            "key.parsed_scope.end" : 440,
+            "key.parsed_scope.start" : 440,
             "key.typename" : "Int",
             "key.typeusr" : "$sSiD",
             "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC5indexSivp"
@@ -12848,18 +12917,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "init(value: Value<\/Type>, index: Int<\/Type>, identifierProvider: (Value<\/Type>) -> Identifier<\/Type>, identifierFactory: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>>.Factory<\/Type>)<\/Declaration>",
             "key.bodylength" : 160,
-            "key.bodyoffset" : 11556,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 12869,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(value<\/decl.var.parameter.argument_label>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, index<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, identifierProvider<\/decl.var.parameter.argument_label>: (Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, identifierFactory<\/decl.var.parameter.argument_label>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>.Factory<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 350,
             "key.name" : "init(value:index:identifierProvider:identifierFactory:)",
             "key.namelength" : 183,
-            "key.nameoffset" : 11367,
-            "key.offset" : 11367,
+            "key.nameoffset" : 12680,
+            "key.offset" : 12680,
             "key.parsed_declaration" : "init(\n    value : Value,\n    index : Int,\n    identifierProvider : (Value) -> Identifier,\n    identifierFactory : UniqueIdentifier.Factory\n    )",
-            "key.parsed_scope.end" : 405,
-            "key.parsed_scope.start" : 394,
+            "key.parsed_scope.end" : 453,
+            "key.parsed_scope.start" : 442,
             "key.substructure" : [
 
             ],
@@ -12871,32 +12940,32 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "static func containers(with elements: [Value<\/Type>], identifierProvider: (Value<\/Type>) -> Identifier<\/Type>) -> [DiffContainer<\/Type>]<\/Declaration>",
             "key.bodylength" : 435,
-            "key.bodyoffset" : 11843,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 13156,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> containers<\/decl.name>(with<\/decl.var.parameter.argument_label> elements<\/decl.var.parameter.name>: [Value<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, identifierProvider<\/decl.var.parameter.argument_label>: (Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [DiffContainer<\/ref.class>]<\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 552,
             "key.name" : "containers(with:identifierProvider:)",
             "key.namelength" : 79,
-            "key.nameoffset" : 11739,
-            "key.offset" : 11727,
+            "key.nameoffset" : 13052,
+            "key.offset" : 13040,
             "key.parsed_declaration" : "static func containers(with elements : [Value], identifierProvider : (Value) -> Identifier) -> [DiffContainer]",
-            "key.parsed_scope.end" : 420,
-            "key.parsed_scope.start" : 407,
+            "key.parsed_scope.end" : 468,
+            "key.parsed_scope.start" : 455,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let identifierFactory: UniqueIdentifier<\/Type><Value, Identifier>.Factory<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifierFactory<\/decl.name>: UniqueIdentifier<\/ref.struct><Value, Identifier>.Factory<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 69,
                 "key.name" : "identifierFactory",
                 "key.namelength" : 17,
-                "key.nameoffset" : 11856,
-                "key.offset" : 11852,
+                "key.nameoffset" : 13169,
+                "key.offset" : 13165,
                 "key.parsed_declaration" : "let identifierFactory = UniqueIdentifier.Factory()",
-                "key.parsed_scope.end" : 409,
-                "key.parsed_scope.start" : 409,
+                "key.parsed_scope.end" : 457,
+                "key.parsed_scope.start" : 457,
                 "key.typename" : "UniqueIdentifier.Factory",
                 "key.typeusr" : "$s10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV7FactoryCyxq__GD",
                 "key.usr" : "s:10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLC10containers4with18identifierProviderSayADyxq_GGSayxG_q_xXEtFZ0O7FactoryL_AA16UniqueIdentifierACLLV0Q0Cyxq__Gvp"
@@ -12918,19 +12987,19 @@
           {
             "key.attribute" : "source.decl.attribute.private",
             "key.length" : 7,
-            "key.offset" : 12284
+            "key.offset" : 13597
           }
         ],
-        "key.bodylength" : 1158,
-        "key.bodyoffset" : 12355,
+        "key.bodylength" : 1155,
+        "key.bodyoffset" : 13668,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 8,
-            "key.offset" : 12345
+            "key.offset" : 13658
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> UniqueIdentifier<\/decl.name><Type<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> : Hashable<\/ref.protocol> where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -12938,28 +13007,28 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 1222,
+        "key.length" : 1219,
         "key.name" : "UniqueIdentifier",
         "key.namelength" : 16,
-        "key.nameoffset" : 12299,
-        "key.offset" : 12292,
+        "key.nameoffset" : 13612,
+        "key.offset" : 13605,
         "key.parsed_declaration" : "private struct UniqueIdentifier : Hashable",
-        "key.parsed_scope.end" : 470,
-        "key.parsed_scope.start" : 424,
+        "key.parsed_scope.end" : 519,
+        "key.parsed_scope.start" : 472,
         "key.substructure" : [
           {
             "key.annotated_decl" : "Type<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "Type<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 4,
             "key.name" : "Type",
             "key.namelength" : 4,
-            "key.nameoffset" : 12316,
-            "key.offset" : 12316,
+            "key.nameoffset" : 13629,
+            "key.offset" : 13629,
             "key.parsed_declaration" : "private struct UniqueIdentifierIdentifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -12984,36 +13053,29 @@
             "key.length" : 19,
             "key.name" : "Identifier",
             "key.namelength" : 10,
-            "key.nameoffset" : 12322,
-            "key.offset" : 12322,
+            "key.nameoffset" : 13635,
+            "key.offset" : 13635,
             "key.parsed_declaration" : "private struct UniqueIdentifierprivate let base: Identifier<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.private",
-                "key.length" : 7,
-                "key.offset" : 12360
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
-            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> base<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let base: Identifier<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> base<\/decl.name>: Identifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
             "key.name" : "base",
             "key.namelength" : 4,
-            "key.nameoffset" : 12372,
-            "key.offset" : 12368,
-            "key.parsed_declaration" : "private let base : Identifier",
-            "key.parsed_scope.end" : 426,
-            "key.parsed_scope.start" : 426,
+            "key.nameoffset" : 13677,
+            "key.offset" : 13673,
+            "key.parsed_declaration" : "let base : Identifier",
+            "key.parsed_scope.end" : 474,
+            "key.parsed_scope.start" : 474,
             "key.typename" : "Identifier",
             "key.typeusr" : "$sq_D",
             "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV4baseq_vp"
@@ -13025,20 +13087,20 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 12394
+                "key.offset" : 13704
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> modifier<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 18,
             "key.name" : "modifier",
             "key.namelength" : 8,
-            "key.nameoffset" : 12406,
-            "key.offset" : 12402,
+            "key.nameoffset" : 13716,
+            "key.offset" : 13712,
             "key.parsed_declaration" : "private let modifier : Int",
-            "key.parsed_scope.end" : 427,
-            "key.parsed_scope.start" : 427,
+            "key.parsed_scope.end" : 476,
+            "key.parsed_scope.start" : 476,
             "key.typename" : "Int",
             "key.typeusr" : "$sSiD",
             "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV8modifierSivp"
@@ -13050,20 +13112,20 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 12430
+                "key.offset" : 13740
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> hash<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 14,
             "key.name" : "hash",
             "key.namelength" : 4,
-            "key.nameoffset" : 12442,
-            "key.offset" : 12438,
+            "key.nameoffset" : 13752,
+            "key.offset" : 13748,
             "key.parsed_declaration" : "private let hash : Int",
-            "key.parsed_scope.end" : 429,
-            "key.parsed_scope.start" : 429,
+            "key.parsed_scope.end" : 478,
+            "key.parsed_scope.start" : 478,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "hash(into:)<\/RelatedName>"
@@ -13077,32 +13139,32 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "init(base: Identifier<\/Type>, modifier: Int<\/Type>)<\/Declaration>",
             "key.bodylength" : 212,
-            "key.bodyoffset" : 12507,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 13817,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(base<\/decl.var.parameter.argument_label>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, modifier<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 258,
             "key.name" : "init(base:modifier:)",
             "key.namelength" : 39,
-            "key.nameoffset" : 12462,
-            "key.offset" : 12462,
+            "key.nameoffset" : 13772,
+            "key.offset" : 13772,
             "key.parsed_declaration" : "init(base : Identifier, modifier : Int)",
-            "key.parsed_scope.end" : 440,
-            "key.parsed_scope.start" : 431,
+            "key.parsed_scope.end" : 489,
+            "key.parsed_scope.start" : 480,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var hasher: Hasher<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> hasher<\/decl.name>: Hasher<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 21,
                 "key.name" : "hasher",
                 "key.namelength" : 6,
-                "key.nameoffset" : 12587,
-                "key.offset" : 12583,
+                "key.nameoffset" : 13897,
+                "key.offset" : 13893,
                 "key.parsed_declaration" : "var hasher = Hasher()",
-                "key.parsed_scope.end" : 436,
-                "key.parsed_scope.start" : 436,
+                "key.parsed_scope.end" : 485,
+                "key.parsed_scope.start" : 485,
                 "key.typename" : "Hasher",
                 "key.typeusr" : "$ss6HasherVD",
                 "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV4base8modifierADyxq_Gq__Sitcfc6hasherL_s6HasherVvp"
@@ -13116,7 +13178,7 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "static func == (lhs: UniqueIdentifier<\/Type>, rhs: UniqueIdentifier<\/Type>) -> Bool<\/Type><\/Declaration>",
             "key.bodylength" : 97,
-            "key.bodyoffset" : 12805,
+            "key.bodyoffset" : 14115,
             "key.doc.declaration" : "static func == (lhs: Self, rhs: Self) -> Bool",
             "key.doc.discussion" : [
               {
@@ -13147,22 +13209,22 @@
               }
             ],
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: UniqueIdentifier<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: UniqueIdentifier<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 173,
             "key.name" : "==(_:_:)",
             "key.namelength" : 49,
-            "key.nameoffset" : 12742,
-            "key.offset" : 12730,
+            "key.nameoffset" : 14052,
+            "key.offset" : 14040,
             "key.overrides" : [
               {
                 "key.usr" : "s:SQ2eeoiySbx_xtFZ"
               }
             ],
             "key.parsed_declaration" : "static func == (lhs: UniqueIdentifier, rhs: UniqueIdentifier) -> Bool",
-            "key.parsed_scope.end" : 445,
-            "key.parsed_scope.start" : 442,
+            "key.parsed_scope.end" : 494,
+            "key.parsed_scope.start" : 491,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "== (_: `Self`, _: `Self`) -> Bool<\/RelatedName>"
@@ -13623,7 +13685,7 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func hash(into hasher: inout Hasher<\/Type>)<\/Declaration>",
             "key.bodylength" : 39,
-            "key.bodyoffset" : 12955,
+            "key.bodyoffset" : 14265,
             "key.doc.declaration" : "func hash(into hasher: inout Hasher)",
             "key.doc.discussion" : [
               {
@@ -13649,22 +13711,22 @@
               }
             ],
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 82,
             "key.name" : "hash(into:)",
             "key.namelength" : 31,
-            "key.nameoffset" : 12918,
-            "key.offset" : 12913,
+            "key.nameoffset" : 14228,
+            "key.offset" : 14223,
             "key.overrides" : [
               {
                 "key.usr" : "s:SH4hash4intoys6HasherVz_tF"
               }
             ],
             "key.parsed_declaration" : "func hash(into hasher: inout Hasher)",
-            "key.parsed_scope.end" : 450,
-            "key.parsed_scope.start" : 447,
+            "key.parsed_scope.end" : 499,
+            "key.parsed_scope.start" : 496,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "hash<\/RelatedName>"
@@ -13684,22 +13746,22 @@
               {
                 "key.attribute" : "source.decl.attribute.final",
                 "key.length" : 5,
-                "key.offset" : 13005
+                "key.offset" : 14315
               }
             ],
             "key.bodylength" : 481,
-            "key.bodyoffset" : 13030,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 14340,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> UniqueIdentifier<\/ref.struct><Type, Identifier>.Factory<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 501,
             "key.name" : "Factory",
             "key.namelength" : 7,
-            "key.nameoffset" : 13017,
-            "key.offset" : 13011,
+            "key.nameoffset" : 14327,
+            "key.offset" : 14321,
             "key.parsed_declaration" : "final class Factory",
-            "key.parsed_scope.end" : 469,
-            "key.parsed_scope.start" : 452,
+            "key.parsed_scope.end" : 518,
+            "key.parsed_scope.start" : 501,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.private",
@@ -13708,20 +13770,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 13039
+                    "key.offset" : 14349
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> counts<\/decl.name>: [Identifier<\/ref.generic_type_param> : Int<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 35,
                 "key.name" : "counts",
                 "key.namelength" : 6,
-                "key.nameoffset" : 13051,
-                "key.offset" : 13047,
+                "key.nameoffset" : 14361,
+                "key.offset" : 14357,
                 "key.parsed_declaration" : "private var counts : [Identifier:Int] = [:]",
-                "key.parsed_scope.end" : 454,
-                "key.parsed_scope.start" : 454,
+                "key.parsed_scope.end" : 503,
+                "key.parsed_scope.start" : 503,
                 "key.setter_accessibility" : "source.lang.swift.accessibility.private",
                 "key.typename" : "[Identifier : Int]",
                 "key.typeusr" : "$sSDyq_SiGD",
@@ -13731,18 +13793,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "func reserveCapacity(_ minimumCapacity: Int<\/Type>)<\/Declaration>",
                 "key.bodylength" : 66,
-                "key.bodyoffset" : 13155,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.bodyoffset" : 14465,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> reserveCapacity<\/decl.name>(_<\/decl.var.parameter.argument_label> minimumCapacity<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 122,
                 "key.name" : "reserveCapacity(_:)",
                 "key.namelength" : 40,
-                "key.nameoffset" : 13105,
-                "key.offset" : 13100,
+                "key.nameoffset" : 14415,
+                "key.offset" : 14410,
                 "key.parsed_declaration" : "func reserveCapacity(_ minimumCapacity : Int)",
-                "key.parsed_scope.end" : 459,
-                "key.parsed_scope.start" : 456,
+                "key.parsed_scope.end" : 508,
+                "key.parsed_scope.start" : 505,
                 "key.substructure" : [
 
                 ],
@@ -13754,32 +13816,32 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "func identifier(for base: Identifier<\/Type>) -> UniqueIdentifier<\/Type><\/Declaration>",
                 "key.bodylength" : 197,
-                "key.bodyoffset" : 13308,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.bodyoffset" : 14618,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> identifier<\/decl.name>(for<\/decl.var.parameter.argument_label> base<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> UniqueIdentifier<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 266,
                 "key.name" : "identifier(for:)",
                 "key.namelength" : 33,
-                "key.nameoffset" : 13245,
-                "key.offset" : 13240,
+                "key.nameoffset" : 14555,
+                "key.offset" : 14550,
                 "key.parsed_declaration" : "func identifier(for base : Identifier) -> UniqueIdentifier",
-                "key.parsed_scope.end" : 468,
-                "key.parsed_scope.start" : 461,
+                "key.parsed_scope.end" : 517,
+                "key.parsed_scope.start" : 510,
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let count: Int<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 40,
                     "key.name" : "count",
                     "key.namelength" : 5,
-                    "key.nameoffset" : 13325,
-                    "key.offset" : 13321,
+                    "key.nameoffset" : 14635,
+                    "key.offset" : 14631,
                     "key.parsed_declaration" : "let count = self.counts[base, default:1]",
-                    "key.parsed_scope.end" : 463,
-                    "key.parsed_scope.start" : 463,
+                    "key.parsed_scope.end" : 512,
+                    "key.parsed_scope.start" : 512,
                     "key.typename" : "Int",
                     "key.typeusr" : "$sSiD",
                     "key.usr" : "s:10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLV7FactoryC10identifier3forADyxq_Gq__tF5countL_Sivp"
@@ -13806,41 +13868,41 @@
           {
             "key.attribute" : "source.decl.attribute.final",
             "key.length" : 5,
-            "key.offset" : 13524
+            "key.offset" : 14834
           },
           {
             "key.attribute" : "source.decl.attribute.private",
             "key.length" : 7,
-            "key.offset" : 13516
+            "key.offset" : 14826
           }
         ],
         "key.bodylength" : 3166,
-        "key.bodyoffset" : 13584,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+        "key.bodyoffset" : 14894,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
         "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DiffableCollection<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>, Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 3221,
         "key.name" : "DiffableCollection",
         "key.namelength" : 18,
-        "key.nameoffset" : 13536,
-        "key.offset" : 13530,
+        "key.nameoffset" : 14846,
+        "key.offset" : 14840,
         "key.parsed_declaration" : "private final class DiffableCollection",
-        "key.parsed_scope.end" : 579,
-        "key.parsed_scope.start" : 472,
+        "key.parsed_scope.end" : 628,
+        "key.parsed_scope.start" : 521,
         "key.substructure" : [
           {
             "key.annotated_decl" : "Value<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 5,
             "key.name" : "Value",
             "key.namelength" : 5,
-            "key.nameoffset" : 13555,
-            "key.offset" : 13555,
+            "key.nameoffset" : 14865,
+            "key.offset" : 14865,
             "key.parsed_declaration" : "private final class DiffableCollectionIdentifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -13865,11 +13927,11 @@
             "key.length" : 19,
             "key.name" : "Identifier",
             "key.namelength" : 10,
-            "key.nameoffset" : 13562,
-            "key.offset" : 13562,
+            "key.nameoffset" : 14872,
+            "key.offset" : 14872,
             "key.parsed_declaration" : "private final class DiffableCollectionprivate<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> containers<\/decl.name>: [DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 51,
             "key.name" : "containers",
             "key.namelength" : 10,
-            "key.nameoffset" : 13606,
-            "key.offset" : 13602,
+            "key.nameoffset" : 14916,
+            "key.offset" : 14912,
             "key.parsed_declaration" : "private(set) var containers : [DiffContainer]",
-            "key.parsed_scope.end" : 474,
-            "key.parsed_scope.start" : 474,
+            "key.parsed_scope.end" : 523,
+            "key.parsed_scope.start" : 523,
             "key.setter_accessibility" : "source.lang.swift.accessibility.private",
             "key.typename" : "[DiffContainer]",
             "key.typeusr" : "$sSay10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GGD",
@@ -13907,20 +13969,20 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 13658
+                "key.offset" : 14968
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> containersByIdentifier<\/decl.name>: [UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>> : DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 99,
             "key.name" : "containersByIdentifier",
             "key.namelength" : 22,
-            "key.nameoffset" : 13670,
-            "key.offset" : 13666,
+            "key.nameoffset" : 14980,
+            "key.offset" : 14976,
             "key.parsed_declaration" : "private var containersByIdentifier : [UniqueIdentifier:DiffContainer]",
-            "key.parsed_scope.end" : 475,
-            "key.parsed_scope.start" : 475,
+            "key.parsed_scope.end" : 524,
+            "key.parsed_scope.start" : 524,
             "key.setter_accessibility" : "source.lang.swift.accessibility.private",
             "key.typename" : "[UniqueIdentifier : DiffContainer]",
             "key.typeusr" : "$sSDy10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_GAA13DiffContainerACLLCyxq_GGD",
@@ -13930,18 +13992,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "init(elements: [Value<\/Type>], _ identifierProvider: (Value<\/Type>) -> Identifier<\/Type>)<\/Declaration>",
             "key.bodylength" : 353,
-            "key.bodyoffset" : 13851,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 15161,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(elements<\/decl.var.parameter.argument_label>: [Value<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> identifierProvider<\/decl.var.parameter.name>: (Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Identifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 430,
             "key.name" : "init(elements:_:)",
             "key.namelength" : 70,
-            "key.nameoffset" : 13775,
-            "key.offset" : 13775,
+            "key.nameoffset" : 15085,
+            "key.offset" : 15085,
             "key.parsed_declaration" : "init(elements : [Value], _ identifierProvider : (Value) -> Identifier)",
-            "key.parsed_scope.end" : 486,
-            "key.parsed_scope.start" : 477,
+            "key.parsed_scope.end" : 535,
+            "key.parsed_scope.start" : 526,
             "key.substructure" : [
 
             ],
@@ -13955,24 +14017,24 @@
             "key.name" : "MARK: Querying The Collection",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 14218
+            "key.offset" : 15528
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func index(of identifier: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>>) -> Int<\/Type><\/Declaration>",
             "key.bodylength" : 115,
-            "key.bodyoffset" : 14333,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 15643,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> index<\/decl.name>(of<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 192,
             "key.name" : "index(of:)",
             "key.namelength" : 58,
-            "key.nameoffset" : 14262,
-            "key.offset" : 14257,
+            "key.nameoffset" : 15572,
+            "key.offset" : 15567,
             "key.parsed_declaration" : "func index(of identifier : UniqueIdentifier) -> Int",
-            "key.parsed_scope.end" : 495,
-            "key.parsed_scope.start" : 490,
+            "key.parsed_scope.end" : 544,
+            "key.parsed_scope.start" : 539,
             "key.substructure" : [
 
             ],
@@ -13984,18 +14046,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func contains(identifier: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>>) -> Bool<\/Type><\/Declaration>",
             "key.bodylength" : 67,
-            "key.bodyoffset" : 14536,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 15846,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> contains<\/decl.name>(identifier<\/decl.var.parameter.argument_label>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 145,
             "key.name" : "contains(identifier:)",
             "key.namelength" : 58,
-            "key.nameoffset" : 14464,
-            "key.offset" : 14459,
+            "key.nameoffset" : 15774,
+            "key.offset" : 15769,
             "key.parsed_declaration" : "func contains(identifier : UniqueIdentifier) -> Bool",
-            "key.parsed_scope.end" : 500,
-            "key.parsed_scope.start" : 497,
+            "key.parsed_scope.end" : 549,
+            "key.parsed_scope.start" : 546,
             "key.substructure" : [
 
             ],
@@ -14007,18 +14069,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func container(for identifier: UniqueIdentifier<\/Type><Value<\/Type>, Identifier<\/Type>>) -> DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>><\/Declaration>",
             "key.bodylength" : 61,
-            "key.bodyoffset" : 14724,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 16034,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> container<\/decl.name>(for<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 172,
             "key.name" : "container(for:)",
             "key.namelength" : 63,
-            "key.nameoffset" : 14619,
-            "key.offset" : 14614,
+            "key.nameoffset" : 15929,
+            "key.offset" : 15924,
             "key.parsed_declaration" : "func container(for identifier : UniqueIdentifier) -> DiffContainer",
-            "key.parsed_scope.end" : 505,
-            "key.parsed_scope.start" : 502,
+            "key.parsed_scope.end" : 554,
+            "key.parsed_scope.start" : 551,
             "key.substructure" : [
 
             ],
@@ -14030,18 +14092,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func difference(from other: DiffableCollection<\/Type>) -> [DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>>]<\/Declaration>",
             "key.bodylength" : 236,
-            "key.bodyoffset" : 14888,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 16198,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> difference<\/decl.name>(from<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: DiffableCollection<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> [DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 329,
             "key.name" : "difference(from:)",
             "key.namelength" : 43,
-            "key.nameoffset" : 14801,
-            "key.offset" : 14796,
+            "key.nameoffset" : 16111,
+            "key.offset" : 16106,
             "key.parsed_declaration" : "func difference(from other : DiffableCollection) -> [DiffContainer]",
-            "key.parsed_scope.end" : 516,
-            "key.parsed_scope.start" : 507,
+            "key.parsed_scope.end" : 565,
+            "key.parsed_scope.start" : 556,
             "key.substructure" : [
 
             ],
@@ -14053,32 +14115,32 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func subtractDifference(from other: DiffableCollection<\/Type>) -> [DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>>]<\/Declaration>",
             "key.bodylength" : 147,
-            "key.bodyoffset" : 15235,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 16545,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> subtractDifference<\/decl.name>(from<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: DiffableCollection<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> [DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 248,
             "key.name" : "subtractDifference(from:)",
             "key.namelength" : 51,
-            "key.nameoffset" : 15140,
-            "key.offset" : 15135,
+            "key.nameoffset" : 16450,
+            "key.offset" : 16445,
             "key.parsed_declaration" : "func subtractDifference(from other : DiffableCollection) -> [DiffContainer]",
-            "key.parsed_scope.end" : 525,
-            "key.parsed_scope.start" : 518,
+            "key.parsed_scope.end" : 574,
+            "key.parsed_scope.start" : 567,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let difference: [DiffContainer<\/Type><Value, Identifier>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> difference<\/decl.name>: [DiffContainer<\/ref.class><Value, Identifier>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 45,
                 "key.name" : "difference",
                 "key.namelength" : 10,
-                "key.nameoffset" : 15248,
-                "key.offset" : 15244,
+                "key.nameoffset" : 16558,
+                "key.offset" : 16554,
                 "key.parsed_declaration" : "let difference = self.difference(from: other)",
-                "key.parsed_scope.end" : 520,
-                "key.parsed_scope.start" : 520,
+                "key.parsed_scope.end" : 569,
+                "key.parsed_scope.start" : 569,
                 "key.related_decls" : [
                   {
                     "key.annotated_decl" : "difference(from:)<\/RelatedName>"
@@ -14099,38 +14161,38 @@
             "key.name" : "MARK: Core Mutating Methods",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 15396
+            "key.offset" : 16706
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func move(from: Int<\/Type>, to: Int<\/Type>)<\/Declaration>",
             "key.bodylength" : 255,
-            "key.bodyoffset" : 15469,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 16779,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> move<\/decl.name>(from<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 292,
             "key.name" : "move(from:to:)",
             "key.namelength" : 25,
-            "key.nameoffset" : 15438,
-            "key.offset" : 15433,
+            "key.nameoffset" : 16748,
+            "key.offset" : 16743,
             "key.parsed_declaration" : "func move(from : Int, to: Int)",
-            "key.parsed_scope.end" : 541,
-            "key.parsed_scope.start" : 529,
+            "key.parsed_scope.end" : 590,
+            "key.parsed_scope.start" : 578,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let value: DiffContainer<\/Type><Value, Identifier><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> value<\/decl.name>: DiffContainer<\/ref.class><Value, Identifier><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 33,
                 "key.name" : "value",
                 "key.namelength" : 5,
-                "key.nameoffset" : 15552,
-                "key.offset" : 15548,
+                "key.nameoffset" : 16862,
+                "key.offset" : 16858,
                 "key.parsed_declaration" : "let value = self.containers[from]",
-                "key.parsed_scope.end" : 535,
-                "key.parsed_scope.start" : 535,
+                "key.parsed_scope.end" : 584,
+                "key.parsed_scope.start" : 584,
                 "key.typename" : "DiffContainer",
                 "key.typeusr" : "$s10ListableUI13DiffContainer33_C15E326CC9B009491D3ADB78FA7FFECBLLCyxq_GD",
                 "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC4move4from2toySi_SitF5valueL_AA13DiffContainerACLLCyxq_Gvp"
@@ -14144,32 +14206,32 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func remove(containers: [DiffContainer<\/Type><Value<\/Type>, Identifier<\/Type>>])<\/Declaration>",
             "key.bodylength" : 381,
-            "key.bodyoffset" : 15801,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 17111,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> remove<\/decl.name>(containers<\/decl.var.parameter.argument_label>: [DiffContainer<\/ref.class><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 448,
             "key.name" : "remove(containers:)",
             "key.namelength" : 55,
-            "key.nameoffset" : 15740,
-            "key.offset" : 15735,
+            "key.nameoffset" : 17050,
+            "key.offset" : 17045,
             "key.parsed_declaration" : "func remove(containers : [DiffContainer])",
-            "key.parsed_scope.end" : 558,
-            "key.parsed_scope.start" : 543,
+            "key.parsed_scope.end" : 607,
+            "key.parsed_scope.start" : 592,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let indexes: [Int<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexes<\/decl.name>: [Int<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 114,
                 "key.name" : "indexes",
                 "key.namelength" : 7,
-                "key.nameoffset" : 15937,
-                "key.offset" : 15933,
+                "key.nameoffset" : 17247,
+                "key.offset" : 17243,
                 "key.parsed_declaration" : "let indexes = containers.map({\n    return self.index(of: $0.identifier)\n}).sorted(by: { $0 > $1 })",
-                "key.parsed_scope.end" : 549,
-                "key.parsed_scope.start" : 549,
+                "key.parsed_scope.end" : 598,
+                "key.parsed_scope.start" : 598,
                 "key.typename" : "[Int]",
                 "key.typeusr" : "$sSaySiGD",
                 "key.usr" : "s:10ListableUI18DiffableCollection33_C15E326CC9B009491D3ADB78FA7FFECBLLC6remove10containersySayAA13DiffContainerACLLCyxq_GG_tF7indexesL_SaySiGvp"
@@ -14185,7 +14247,7 @@
             "key.name" : "MARK: Private Methods",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 16196
+            "key.offset" : 17506
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.private",
@@ -14194,20 +14256,20 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 16227
+                "key.offset" : 17537
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> uniqueIdentifierIndexes<\/decl.name>: [UniqueIdentifier<\/ref.struct><Value<\/ref.generic_type_param>, Identifier<\/ref.generic_type_param>> : Int<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 77,
             "key.name" : "uniqueIdentifierIndexes",
             "key.namelength" : 23,
-            "key.nameoffset" : 16239,
-            "key.offset" : 16235,
+            "key.nameoffset" : 17549,
+            "key.offset" : 17545,
             "key.parsed_declaration" : "private var uniqueIdentifierIndexes : [UniqueIdentifier:Int] = [:]",
-            "key.parsed_scope.end" : 562,
-            "key.parsed_scope.start" : 562,
+            "key.parsed_scope.end" : 611,
+            "key.parsed_scope.start" : 611,
             "key.setter_accessibility" : "source.lang.swift.accessibility.private",
             "key.typename" : "[UniqueIdentifier : Int]",
             "key.typeusr" : "$sSDy10ListableUI16UniqueIdentifier33_C15E326CC9B009491D3ADB78FA7FFECBLLVyxq_GSiGD",
@@ -14220,22 +14282,22 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 16322
+                "key.offset" : 17632
               }
             ],
             "key.bodylength" : 75,
-            "key.bodyoffset" : 16360,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 17670,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> resetIndexLookups<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 106,
             "key.name" : "resetIndexLookups()",
             "key.namelength" : 19,
-            "key.nameoffset" : 16335,
-            "key.offset" : 16330,
+            "key.nameoffset" : 17645,
+            "key.offset" : 17640,
             "key.parsed_declaration" : "private func resetIndexLookups()",
-            "key.parsed_scope.end" : 567,
-            "key.parsed_scope.start" : 564,
+            "key.parsed_scope.end" : 616,
+            "key.parsed_scope.start" : 613,
             "key.substructure" : [
 
             ],
@@ -14250,22 +14312,22 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 16446
+                "key.offset" : 17756
               }
             ],
             "key.bodylength" : 253,
-            "key.bodyoffset" : 16495,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 17805,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> generateIndexLookupsIfNeeded<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 295,
             "key.name" : "generateIndexLookupsIfNeeded()",
             "key.namelength" : 30,
-            "key.nameoffset" : 16459,
-            "key.offset" : 16454,
+            "key.nameoffset" : 17769,
+            "key.offset" : 17764,
             "key.parsed_declaration" : "private func generateIndexLookupsIfNeeded()",
-            "key.parsed_scope.end" : 578,
-            "key.parsed_scope.start" : 569,
+            "key.parsed_scope.end" : 627,
+            "key.parsed_scope.start" : 618,
             "key.substructure" : [
 
             ],
@@ -14285,11 +14347,11 @@
           {
             "key.attribute" : "source.decl.attribute.private",
             "key.length" : 7,
-            "key.offset" : 16753
+            "key.offset" : 18063
           }
         ],
         "key.bodylength" : 378,
-        "key.bodyoffset" : 16778,
+        "key.bodyoffset" : 18088,
         "key.doc.declaration" : "@frozen struct Array",
         "key.doc.discussion" : [
           {
@@ -14433,62 +14495,62 @@
         "key.modulename" : "Swift",
         "key.name" : "Array",
         "key.namelength" : 5,
-        "key.nameoffset" : 16771,
-        "key.offset" : 16761,
+        "key.nameoffset" : 18081,
+        "key.offset" : 18071,
         "key.parsed_declaration" : "private extension Array",
-        "key.parsed_scope.end" : 598,
-        "key.parsed_scope.start" : 581,
+        "key.parsed_scope.end" : 647,
+        "key.parsed_scope.start" : 630,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
             "key.annotated_decl" : "func separate(_ block: (Element<\/Type>) -> Bool<\/Type>) -> ([Element<\/Type>], [Element<\/Type>])<\/Declaration>",
             "key.bodylength" : 297,
-            "key.bodyoffset" : 16857,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 18167,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> separate<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ([Element<\/ref.generic_type_param>]<\/tuple.element.type><\/tuple.element>, [Element<\/ref.generic_type_param>]<\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.groupname" : "Collection\/Array",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 372,
             "key.name" : "separate(_:)",
             "key.namelength" : 37,
-            "key.nameoffset" : 16788,
-            "key.offset" : 16783,
+            "key.nameoffset" : 18098,
+            "key.offset" : 18093,
             "key.parsed_declaration" : "func separate(_ block : (Element) -> Bool) -> ([Element], [Element])",
-            "key.parsed_scope.end" : 597,
-            "key.parsed_scope.start" : 583,
+            "key.parsed_scope.end" : 646,
+            "key.parsed_scope.start" : 632,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var left: [Element]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> left<\/decl.name>: [Element]<\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 22,
                 "key.name" : "left",
                 "key.namelength" : 4,
-                "key.nameoffset" : 16870,
-                "key.offset" : 16866,
+                "key.nameoffset" : 18180,
+                "key.offset" : 18176,
                 "key.parsed_declaration" : "var left = [Element]()",
-                "key.parsed_scope.end" : 585,
-                "key.parsed_scope.start" : 585,
+                "key.parsed_scope.end" : 634,
+                "key.parsed_scope.start" : 634,
                 "key.typename" : "[Element]",
                 "key.typeusr" : "$sSayxGD",
                 "key.usr" : "s:Sa10ListableUIE8separate33_C15E326CC9B009491D3ADB78FA7FFECBLLySayxG_ADtSbxXEF4leftL_ADvp"
               },
               {
                 "key.annotated_decl" : "var right: [Element]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> right<\/decl.name>: [Element]<\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 23,
                 "key.name" : "right",
                 "key.namelength" : 5,
-                "key.nameoffset" : 16901,
-                "key.offset" : 16897,
+                "key.nameoffset" : 18211,
+                "key.offset" : 18207,
                 "key.parsed_declaration" : "var right = [Element]()",
-                "key.parsed_scope.end" : 586,
-                "key.parsed_scope.start" : 586,
+                "key.parsed_scope.end" : 635,
+                "key.parsed_scope.start" : 635,
                 "key.typename" : "[Element]",
                 "key.typeusr" : "$sSayxGD",
                 "key.usr" : "s:Sa10ListableUIE8separate33_C15E326CC9B009491D3ADB78FA7FFECBLLySayxG_ADtSbxXEF5rightL_ADvp"
@@ -14510,11 +14572,11 @@
           {
             "key.attribute" : "source.decl.attribute.private",
             "key.length" : 7,
-            "key.offset" : 17159
+            "key.offset" : 18469
           }
         ],
         "key.bodylength" : 609,
-        "key.bodyoffset" : 17184,
+        "key.bodyoffset" : 18494,
         "key.doc.declaration" : "@frozen struct Array",
         "key.doc.discussion" : [
           {
@@ -14658,29 +14720,29 @@
         "key.modulename" : "Swift",
         "key.name" : "Array",
         "key.namelength" : 5,
-        "key.nameoffset" : 17177,
-        "key.offset" : 17167,
+        "key.nameoffset" : 18487,
+        "key.offset" : 18477,
         "key.parsed_declaration" : "private extension Array",
-        "key.parsed_scope.end" : 619,
-        "key.parsed_scope.start" : 600,
+        "key.parsed_scope.end" : 668,
+        "key.parsed_scope.start" : 649,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
             "key.annotated_decl" : "func toUniqueDictionary<Key, Value>(_ block: (Int<\/Type>, Element<\/Type>) -> (Key<\/Type>, Value<\/Type>)) -> Dictionary<\/Type><Key<\/Type>, Value<\/Type>> where Key : Hashable<\/Type><\/Declaration>",
             "key.bodylength" : 485,
-            "key.bodyoffset" : 17306,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+            "key.bodyoffset" : 18616,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> toUniqueDictionary<\/decl.name><Key<\/decl.generic_type_param.name><\/decl.generic_type_param>, Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, Element<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> (Key<\/ref.generic_type_param><\/tuple.element.type><\/tuple.element>, Value<\/ref.generic_type_param><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Dictionary<\/ref.struct><Key<\/ref.generic_type_param>, Value<\/ref.generic_type_param>><\/decl.function.returntype> where<\/syntaxtype.keyword> Key : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>",
             "key.groupname" : "Collection\/Array",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 603,
             "key.name" : "toUniqueDictionary(_:)",
             "key.namelength" : 81,
-            "key.nameoffset" : 17194,
-            "key.offset" : 17189,
+            "key.nameoffset" : 18504,
+            "key.offset" : 18499,
             "key.parsed_declaration" : "func toUniqueDictionary(_ block : (Int, Element) -> (Key, Value)) -> Dictionary",
-            "key.parsed_scope.end" : 618,
-            "key.parsed_scope.start" : 602,
+            "key.parsed_scope.end" : 667,
+            "key.parsed_scope.start" : 651,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Key : Hashable<\/Type><\/Declaration>",
@@ -14688,10 +14750,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 8,
-                    "key.offset" : 17217
+                    "key.offset" : 18527
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "Key<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.groupname" : "Collection\/Array",
                 "key.inheritedtypes" : [
@@ -14703,47 +14765,47 @@
                 "key.length" : 12,
                 "key.name" : "Key",
                 "key.namelength" : 3,
-                "key.nameoffset" : 17213,
-                "key.offset" : 17213,
+                "key.nameoffset" : 18523,
+                "key.offset" : 18523,
                 "key.parsed_declaration" : "func toUniqueDictionaryValue<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 5,
                 "key.name" : "Value",
                 "key.namelength" : 5,
-                "key.nameoffset" : 17227,
-                "key.offset" : 17227,
+                "key.nameoffset" : 18537,
+                "key.offset" : 18537,
                 "key.parsed_declaration" : "func toUniqueDictionaryvar dictionary: [Key : Value]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/ArrayDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> dictionary<\/decl.name>: [Key : Value]<\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 40,
                 "key.name" : "dictionary",
                 "key.namelength" : 10,
-                "key.nameoffset" : 17319,
-                "key.offset" : 17315,
+                "key.nameoffset" : 18629,
+                "key.offset" : 18625,
                 "key.parsed_declaration" : "var dictionary = Dictionary()",
-                "key.parsed_scope.end" : 604,
-                "key.parsed_scope.start" : 604,
+                "key.parsed_scope.end" : 653,
+                "key.parsed_scope.start" : 653,
                 "key.typename" : "[Key : Value]",
                 "key.typeusr" : "$sSDyqd__qd_0_GD",
                 "key.usr" : "s:Sa10ListableUIE18toUniqueDictionary33_C15E326CC9B009491D3ADB78FA7FFECBLLySDyqd__qd_0_Gqd___qd_0_tSi_xtXESHRd__r0_lF10dictionaryL_ADvp"
@@ -14761,31 +14823,31 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 16880,
+    "key.length" : 18227,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.accessibility" : "source.lang.swift.accessibility.internal",
         "key.annotated_decl" : "struct SectionedDiff<Section, SectionIdentifier, Item, ItemIdentifier> where SectionIdentifier : Hashable<\/Type>, ItemIdentifier : Hashable<\/Type><\/Declaration>",
-        "key.bodylength" : 10317,
+        "key.bodylength" : 11633,
         "key.bodyoffset" : 202,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/decl.name><Section<\/decl.generic_type_param.name><\/decl.generic_type_param>, SectionIdentifier<\/decl.generic_type_param.name><\/decl.generic_type_param>, Item<\/decl.generic_type_param.name><\/decl.generic_type_param>, ItemIdentifier<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> SectionIdentifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement>, ItemIdentifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 10408,
+        "key.length" : 11724,
         "key.name" : "SectionedDiff",
         "key.namelength" : 13,
         "key.nameoffset" : 119,
         "key.offset" : 112,
         "key.parsed_declaration" : "struct SectionedDiff",
-        "key.parsed_scope.end" : 352,
+        "key.parsed_scope.end" : 391,
         "key.parsed_scope.start" : 11,
         "key.substructure" : [
           {
             "key.annotated_decl" : "Section<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "Section<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 7,
@@ -14809,7 +14871,7 @@
                 "key.offset" : 160
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "SectionIdentifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -14831,7 +14893,7 @@
           },
           {
             "key.annotated_decl" : "Item<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "Item<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 4,
@@ -14855,7 +14917,7 @@
                 "key.offset" : 191
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "ItemIdentifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -14878,7 +14940,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let old: [Section<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: [Section<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -14896,7 +14958,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let new: [Section<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: [Section<\/ref.generic_type_param>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -14914,7 +14976,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let changes: SectionChanges<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> changes<\/decl.name>: SectionChanges<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 28,
@@ -14934,7 +14996,7 @@
             "key.annotated_decl" : "init(old: [Section<\/Type>], new: [Section<\/Type>], configuration: Configuration<\/Type>)<\/Declaration>",
             "key.bodylength" : 194,
             "key.bodyoffset" : 372,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 269,
@@ -14957,7 +15019,7 @@
             "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.Configuration<\/Declaration>",
             "key.bodylength" : 1477,
             "key.bodyoffset" : 603,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.Configuration<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 1504,
@@ -14972,7 +15034,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var section: SectionProviders<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> section<\/decl.name>: SectionProviders<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 30,
@@ -14991,7 +15053,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var item: ItemProviders<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> item<\/decl.name>: ItemProviders<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 24,
@@ -15012,7 +15074,7 @@
                 "key.annotated_decl" : "init(section: SectionProviders<\/Type>, item: ItemProviders<\/Type>)<\/Declaration>",
                 "key.bodylength" : 73,
                 "key.bodyoffset" : 757,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(section<\/decl.var.parameter.argument_label>: SectionProviders<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, item<\/decl.var.parameter.argument_label>: ItemProviders<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 138,
@@ -15035,7 +15097,7 @@
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.Configuration<\/Type>.SectionProviders<\/Declaration>",
                 "key.bodylength" : 585,
                 "key.bodyoffset" : 882,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.Configuration<\/ref.struct>.SectionProviders<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
                 "key.length" : 619,
@@ -15050,7 +15112,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var identifier: (Section<\/Type>) -> SectionIdentifier<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> SectionIdentifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 47,
@@ -15069,7 +15131,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var items: (Section<\/Type>) -> [Item<\/Type>]<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Item<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 31,
@@ -15088,7 +15150,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var movedHint: (Section<\/Type>, Section<\/Type>) -> Bool<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> movedHint<\/decl.name>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 42,
@@ -15109,7 +15171,7 @@
                     "key.annotated_decl" : "init(identifier: @escaping (Section<\/Type>) -> SectionIdentifier<\/Type>, items: @escaping (Section<\/Type>) -> [Item<\/Type>], movedHint: @escaping (Section<\/Type>, Section<\/Type>) -> Bool<\/Type>)<\/Declaration>",
                     "key.bodylength" : 136,
                     "key.bodyoffset" : 1321,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(identifier<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> SectionIdentifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Item<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, movedHint<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                     "key.kind" : "source.lang.swift.decl.function.method.instance",
                     "key.length" : 365,
@@ -15137,7 +15199,7 @@
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.Configuration<\/Type>.ItemProviders<\/Declaration>",
                 "key.bodylength" : 558,
                 "key.bodyoffset" : 1516,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.Configuration<\/ref.struct>.ItemProviders<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
                 "key.length" : 589,
@@ -15152,7 +15214,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var identifier: (Item<\/Type>) -> ItemIdentifier<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ItemIdentifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 41,
@@ -15171,7 +15233,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var updated: (Item<\/Type>, Item<\/Type>) -> Bool<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updated<\/decl.name>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 34,
@@ -15190,7 +15252,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var movedHint: (Item<\/Type>, Item<\/Type>) -> Bool<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> movedHint<\/decl.name>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 36,
@@ -15211,7 +15273,7 @@
                     "key.annotated_decl" : "init(identifier: @escaping (Item<\/Type>) -> ItemIdentifier<\/Type>, updated: @escaping (Item<\/Type>, Item<\/Type>) -> Bool<\/Type>, movedHint: @escaping (Item<\/Type>, Item<\/Type>) -> Bool<\/Type>)<\/Declaration>",
                     "key.bodylength" : 140,
                     "key.bodyoffset" : 1924,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(identifier<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ItemIdentifier<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, movedHint<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                     "key.kind" : "source.lang.swift.decl.function.method.instance",
                     "key.length" : 360,
@@ -15242,24 +15304,24 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Declaration>",
-            "key.bodylength" : 4690,
+            "key.bodylength" : 5486,
             "key.bodyoffset" : 2118,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 4718,
+            "key.length" : 5514,
             "key.name" : "SectionChanges",
             "key.namelength" : 14,
             "key.nameoffset" : 2098,
             "key.offset" : 2091,
             "key.parsed_declaration" : "struct SectionChanges",
-            "key.parsed_scope.end" : 227,
+            "key.parsed_scope.end" : 251,
             "key.parsed_scope.start" : 81,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let added: [Added<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> added<\/decl.name>: [Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
@@ -15277,7 +15339,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let removed: [Removed<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: [Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 23,
@@ -15295,7 +15357,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let moved: [Moved<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moved<\/decl.name>: [Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
@@ -15313,7 +15375,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let noChange: [NoChange<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> noChange<\/decl.name>: [NoChange<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
@@ -15331,7 +15393,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let addedItemIdentifiers: Set<\/Type><ItemIdentifier<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> addedItemIdentifiers<\/decl.name>: Set<\/ref.struct><ItemIdentifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 46,
@@ -15346,20 +15408,38 @@
                 "key.typeusr" : "$sShyq1_GD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV20addedItemIdentifiersShyq1_Gvp"
               },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let removedItemIdentifiers: Set<\/Type><ItemIdentifier<\/Type>><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removedItemIdentifiers<\/decl.name>: Set<\/ref.struct><ItemIdentifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 48,
+                "key.name" : "removedItemIdentifiers",
+                "key.namelength" : 22,
+                "key.nameoffset" : 2326,
+                "key.offset" : 2322,
+                "key.parsed_declaration" : "let removedItemIdentifiers : Set",
+                "key.parsed_scope.end" : 90,
+                "key.parsed_scope.start" : 90,
+                "key.typename" : "Set",
+                "key.typeusr" : "$sShyq1_GD",
+                "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV22removedItemIdentifiersShyq1_Gvp"
+              },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let sectionsChangeCount: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sectionsChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 29,
                 "key.name" : "sectionsChangeCount",
                 "key.namelength" : 19,
-                "key.nameoffset" : 2335,
-                "key.offset" : 2331,
+                "key.nameoffset" : 2392,
+                "key.offset" : 2388,
                 "key.parsed_declaration" : "let sectionsChangeCount : Int",
-                "key.parsed_scope.end" : 91,
-                "key.parsed_scope.start" : 91,
+                "key.parsed_scope.end" : 92,
+                "key.parsed_scope.start" : 92,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV19sectionsChangeCountSivp"
@@ -15367,17 +15447,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let itemsChangeCount: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemsChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 26,
                 "key.name" : "itemsChangeCount",
                 "key.namelength" : 16,
-                "key.nameoffset" : 2373,
-                "key.offset" : 2369,
+                "key.nameoffset" : 2430,
+                "key.offset" : 2426,
                 "key.parsed_declaration" : "let itemsChangeCount : Int",
-                "key.parsed_scope.end" : 92,
-                "key.parsed_scope.start" : 92,
+                "key.parsed_scope.end" : 93,
+                "key.parsed_scope.start" : 93,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV16itemsChangeCountSivp"
@@ -15386,18 +15466,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var totalChangeCount: Int<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 70,
-                "key.bodyoffset" : 2441,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 2498,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> totalChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 99,
                 "key.name" : "totalChangeCount",
                 "key.namelength" : 16,
-                "key.nameoffset" : 2417,
-                "key.offset" : 2413,
+                "key.nameoffset" : 2474,
+                "key.offset" : 2470,
                 "key.parsed_declaration" : "var totalChangeCount : Int",
-                "key.parsed_scope.end" : 96,
-                "key.parsed_scope.start" : 94,
+                "key.parsed_scope.end" : 97,
+                "key.parsed_scope.start" : 95,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV16totalChangeCountSivp"
@@ -15406,18 +15486,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var isEmpty: Bool<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 48,
-                "key.bodyoffset" : 2550,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 2607,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 69,
                 "key.name" : "isEmpty",
                 "key.namelength" : 7,
-                "key.nameoffset" : 2534,
-                "key.offset" : 2530,
+                "key.nameoffset" : 2591,
+                "key.offset" : 2587,
                 "key.parsed_declaration" : "var isEmpty : Bool",
-                "key.parsed_scope.end" : 100,
-                "key.parsed_scope.start" : 98,
+                "key.parsed_scope.end" : 101,
+                "key.parsed_scope.start" : 99,
                 "key.typename" : "Bool",
                 "key.typeusr" : "$sSbD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7isEmptySbvp"
@@ -15429,20 +15509,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 2617
+                    "key.offset" : 2674
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> diff<\/decl.name>: ArrayDiff<\/ref.struct><Section<\/ref.generic_type_param>, SectionIdentifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 48,
                 "key.name" : "diff",
                 "key.namelength" : 4,
-                "key.nameoffset" : 2629,
-                "key.offset" : 2625,
+                "key.nameoffset" : 2686,
+                "key.offset" : 2682,
                 "key.parsed_declaration" : "private let diff : ArrayDiff",
-                "key.parsed_scope.end" : 102,
-                "key.parsed_scope.start" : 102,
+                "key.parsed_scope.end" : 103,
+                "key.parsed_scope.start" : 103,
                 "key.typename" : "ArrayDiff",
                 "key.typeusr" : "$s10ListableUI9ArrayDiffVyxq_GD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV4diff33_459A16665E334F63AE247A06F35B0E51LLAA05ArrayD0Vyxq_Gvp"
@@ -15450,124 +15530,181 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "init(old: [Section<\/Type>], new: [Section<\/Type>], configuration: Configuration<\/Type>)<\/Declaration>",
-                "key.bodylength" : 3269,
-                "key.bodyoffset" : 2770,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 3318,
+                "key.bodyoffset" : 2827,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 3349,
+                "key.length" : 3398,
                 "key.name" : "init(old:new:configuration:)",
                 "key.namelength" : 69,
-                "key.nameoffset" : 2691,
-                "key.offset" : 2691,
+                "key.nameoffset" : 2748,
+                "key.offset" : 2748,
                 "key.parsed_declaration" : "init(old : [Section], new : [Section], configuration : Configuration)",
-                "key.parsed_scope.end" : 190,
-                "key.parsed_scope.start" : 104,
+                "key.parsed_scope.end" : 193,
+                "key.parsed_scope.start" : 105,
                 "key.substructure" : [
                   {
-                    "key.annotated_decl" : "let addedIDs: [[ItemIdentifier<\/Type>]]<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
-                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> addedIDs<\/decl.name>: [[ItemIdentifier<\/ref.generic_type_param>]]<\/decl.var.type><\/decl.var.local>",
+                    "key.annotated_decl" : "let sectionsChangeCount: Int<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sectionsChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 206,
-                    "key.name" : "addedIDs",
-                    "key.namelength" : 8,
-                    "key.nameoffset" : 4720,
-                    "key.offset" : 4716,
-                    "key.parsed_declaration" : "let addedIDs : [[ItemIdentifier]] = self.added.map {\n    let items = configuration.section.items($0.newValue)\n    return items.map { configuration.item.identifier($0) }\n}",
-                    "key.parsed_scope.end" : 162,
-                    "key.parsed_scope.start" : 162,
-                    "key.typename" : "[[ItemIdentifier]]",
-                    "key.typeusr" : "$sSaySayq1_GGD",
-                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc8addedIDsL_SaySayq1_GGvp"
-                  },
-                  {
-                    "key.annotated_decl" : "let movedIDs: [[ItemIdentifier<\/Type>]]<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
-                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> movedIDs<\/decl.name>: [[ItemIdentifier<\/ref.generic_type_param>]]<\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 195,
-                    "key.name" : "movedIDs",
-                    "key.namelength" : 8,
-                    "key.nameoffset" : 4952,
-                    "key.offset" : 4948,
-                    "key.parsed_declaration" : "let movedIDs : [[ItemIdentifier]] = self.moved.map {\n    let items = $0.itemChanges.added\n    return items.map { configuration.item.identifier($0.newValue) }\n}",
+                    "key.length" : 130,
+                    "key.name" : "sectionsChangeCount",
+                    "key.namelength" : 19,
+                    "key.nameoffset" : 4958,
+                    "key.offset" : 4954,
+                    "key.parsed_declaration" : "let sectionsChangeCount =\n    self.added.count\n    + self.removed.count\n    + self.moved.count",
                     "key.parsed_scope.end" : 167,
                     "key.parsed_scope.start" : 167,
-                    "key.typename" : "[[ItemIdentifier]]",
-                    "key.typeusr" : "$sSaySayq1_GGD",
-                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc8movedIDsL_SaySayq1_GGvp"
+                    "key.related_decls" : [
+                      {
+                        "key.annotated_decl" : "sectionsChangeCount<\/RelatedName>"
+                      }
+                    ],
+                    "key.typename" : "Int",
+                    "key.typeusr" : "$sSiD",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc19sectionsChangeCountL_Sivp"
                   },
                   {
-                    "key.annotated_decl" : "let noChangeIDs: [[ItemIdentifier<\/Type>]]<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
-                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> noChangeIDs<\/decl.name>: [[ItemIdentifier<\/ref.generic_type_param>]]<\/decl.var.type><\/decl.var.local>",
+                    "key.annotated_decl" : "let itemsChangeCount: Int<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemsChangeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 201,
-                    "key.name" : "noChangeIDs",
-                    "key.namelength" : 11,
-                    "key.nameoffset" : 5173,
-                    "key.offset" : 5169,
-                    "key.parsed_declaration" : "let noChangeIDs : [[ItemIdentifier]] = self.noChange.map {\n    let items = $0.itemChanges.added\n    return items.map { configuration.item.identifier($0.newValue) }\n}",
+                    "key.length" : 175,
+                    "key.name" : "itemsChangeCount",
+                    "key.namelength" : 16,
+                    "key.nameoffset" : 5114,
+                    "key.offset" : 5110,
+                    "key.parsed_declaration" : "let itemsChangeCount =\n    self.moved.reduce(0, { $0 + $1.itemChanges.changeCount })\n    + self.noChange.reduce(0, { $0 + $1.itemChanges.changeCount })",
                     "key.parsed_scope.end" : 172,
                     "key.parsed_scope.start" : 172,
-                    "key.typename" : "[[ItemIdentifier]]",
-                    "key.typeusr" : "$sSaySayq1_GGD",
-                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc11noChangeIDsL_SaySayq1_GGvp"
+                    "key.related_decls" : [
+                      {
+                        "key.annotated_decl" : "itemsChangeCount<\/RelatedName>"
+                      }
+                    ],
+                    "key.typename" : "Int",
+                    "key.typeusr" : "$sSiD",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc16itemsChangeCountL_Sivp"
                   },
                   {
-                    "key.annotated_decl" : "let allIDs: [ItemIdentifier]<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
-                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> allIDs<\/decl.name>: [ItemIdentifier]<\/decl.var.type><\/decl.var.local>",
+                    "key.annotated_decl" : "let hasChanges: Bool<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> hasChanges<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 91,
-                    "key.name" : "allIDs",
-                    "key.namelength" : 6,
-                    "key.nameoffset" : 5400,
-                    "key.offset" : 5396,
-                    "key.parsed_declaration" : "let allIDs = addedIDs.flatMap { $0 } + movedIDs.flatMap { $0 } + noChangeIDs.flatMap { $0 }",
-                    "key.parsed_scope.end" : 177,
-                    "key.parsed_scope.start" : 177,
-                    "key.typename" : "[ItemIdentifier]",
-                    "key.typeusr" : "$sSayq1_GD",
-                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc6allIDsL_Sayq1_Gvp"
+                    "key.length" : 64,
+                    "key.name" : "hasChanges",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 5440,
+                    "key.offset" : 5436,
+                    "key.parsed_declaration" : "let hasChanges = itemsChangeCount > 0 || sectionsChangeCount > 0",
+                    "key.parsed_scope.end" : 179,
+                    "key.parsed_scope.start" : 179,
+                    "key.typename" : "Bool",
+                    "key.typeusr" : "$sSbD",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc03hasF0L_Sbvp"
                   }
                 ],
                 "key.typename" : " (SectionedDiff.SectionChanges.Type) -> ([Section], [Section], SectionedDiff.Configuration) -> SectionedDiff.SectionChanges",
                 "key.typeusr" : "$s3old3new13configuration10ListableUI13SectionedDiffV14SectionChangesVyxq_q0_q1__GSayxG_AjF13ConfigurationVyxq_q0_q1__GtcD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV3old3new13configurationAEyxq_q0_q1__GSayxG_AjC13ConfigurationVyxq_q0_q1__Gtcfc"
               },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.private",
+                "key.annotated_decl" : "private static func allItemIDs(in sections: [Section<\/Type>], configuration: Configuration<\/Type>) -> Set<\/Type><ItemIdentifier<\/Type>><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.private",
+                    "key.length" : 7,
+                    "key.offset" : 6164
+                  }
+                ],
+                "key.bodylength" : 320,
+                "key.bodyoffset" : 6275,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> allItemIDs<\/decl.name>(in<\/decl.var.parameter.argument_label> sections<\/decl.var.parameter.name>: [Section<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Set<\/ref.struct><ItemIdentifier<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.static>",
+                "key.kind" : "source.lang.swift.decl.function.method.static",
+                "key.length" : 424,
+                "key.name" : "allItemIDs(in:configuration:)",
+                "key.namelength" : 66,
+                "key.nameoffset" : 6184,
+                "key.offset" : 6172,
+                "key.parsed_declaration" : "private static func allItemIDs(in sections : [Section], configuration : Configuration) -> Set",
+                "key.parsed_scope.end" : 206,
+                "key.parsed_scope.start" : 195,
+                "key.substructure" : [
+                  {
+                    "key.annotated_decl" : "var IDs: Set<\/Type><ItemIdentifier><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> IDs<\/decl.name>: Set<\/ref.struct><ItemIdentifier><\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 31,
+                    "key.name" : "IDs",
+                    "key.namelength" : 3,
+                    "key.nameoffset" : 6305,
+                    "key.offset" : 6301,
+                    "key.parsed_declaration" : "var IDs = Set()",
+                    "key.parsed_scope.end" : 197,
+                    "key.parsed_scope.start" : 197,
+                    "key.typename" : "Set",
+                    "key.typeusr" : "$sShyq1_GD",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV10allItemIDs33_459A16665E334F63AE247A06F35B0E51LL2in13configurationShyq1_GSayxG_AC13ConfigurationVyxq_q0_q1__GtFZ0I0L_AJvp"
+                  }
+                ],
+                "key.typename" : " (SectionedDiff.SectionChanges.Type) -> ([Section], SectionedDiff.Configuration) -> Set",
+                "key.typeusr" : "$s2in13configurationShyq1_GSayxG_10ListableUI13SectionedDiffV13ConfigurationVyxq_q0_q1__GtcD",
+                "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV10allItemIDs33_459A16665E334F63AE247A06F35B0E51LL2in13configurationShyq1_GSayxG_AC13ConfigurationVyxq_q0_q1__GtFZ"
+              },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Type>.Added<\/Declaration>",
-                "key.bodylength" : 88,
-                "key.bodyoffset" : 6080,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 148,
+                "key.bodyoffset" : 6636,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/ref.struct>.Added<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
-                "key.length" : 111,
+                "key.length" : 171,
                 "key.name" : "Added",
                 "key.namelength" : 5,
-                "key.nameoffset" : 6065,
-                "key.offset" : 6058,
+                "key.nameoffset" : 6621,
+                "key.offset" : 6614,
                 "key.parsed_declaration" : "struct Added",
-                "key.parsed_scope.end" : 197,
-                "key.parsed_scope.start" : 192,
+                "key.parsed_scope.end" : 215,
+                "key.parsed_scope.start" : 208,
                 "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "let identifier: SectionIdentifier<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: SectionIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 34,
+                    "key.name" : "identifier",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 6653,
+                    "key.offset" : 6649,
+                    "key.parsed_declaration" : "let identifier : SectionIdentifier",
+                    "key.parsed_scope.end" : 210,
+                    "key.parsed_scope.start" : 210,
+                    "key.typename" : "SectionIdentifier",
+                    "key.typeusr" : "$sq_D",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5AddedV10identifierq_vp"
+                  },
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 18,
                     "key.name" : "newIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6097,
-                    "key.offset" : 6093,
+                    "key.nameoffset" : 6713,
+                    "key.offset" : 6709,
                     "key.parsed_declaration" : "let newIndex : Int",
-                    "key.parsed_scope.end" : 194,
-                    "key.parsed_scope.start" : 194,
+                    "key.parsed_scope.end" : 212,
+                    "key.parsed_scope.start" : 212,
                     "key.typename" : "Int",
                     "key.typeusr" : "$sSiD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5AddedV8newIndexSivp"
@@ -15575,17 +15712,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newValue: Section<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 22,
                     "key.name" : "newValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6141,
-                    "key.offset" : 6137,
+                    "key.nameoffset" : 6757,
+                    "key.offset" : 6753,
                     "key.parsed_declaration" : "let newValue : Section",
-                    "key.parsed_scope.end" : 196,
-                    "key.parsed_scope.start" : 196,
+                    "key.parsed_scope.end" : 214,
+                    "key.parsed_scope.start" : 214,
                     "key.typename" : "Section",
                     "key.typeusr" : "$sxD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5AddedV8newValuexvp"
@@ -15598,34 +15735,52 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Type>.Removed<\/Declaration>",
-                "key.bodylength" : 88,
-                "key.bodyoffset" : 6211,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 148,
+                "key.bodyoffset" : 6827,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/ref.struct>.Removed<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
-                "key.length" : 113,
+                "key.length" : 173,
                 "key.name" : "Removed",
                 "key.namelength" : 7,
-                "key.nameoffset" : 6194,
-                "key.offset" : 6187,
+                "key.nameoffset" : 6810,
+                "key.offset" : 6803,
                 "key.parsed_declaration" : "struct Removed",
-                "key.parsed_scope.end" : 204,
-                "key.parsed_scope.start" : 199,
+                "key.parsed_scope.end" : 224,
+                "key.parsed_scope.start" : 217,
                 "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "let identifier: SectionIdentifier<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: SectionIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 34,
+                    "key.name" : "identifier",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 6844,
+                    "key.offset" : 6840,
+                    "key.parsed_declaration" : "let identifier : SectionIdentifier",
+                    "key.parsed_scope.end" : 219,
+                    "key.parsed_scope.start" : 219,
+                    "key.typename" : "SectionIdentifier",
+                    "key.typeusr" : "$sq_D",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7RemovedV10identifierq_vp"
+                  },
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 18,
                     "key.name" : "oldIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6228,
-                    "key.offset" : 6224,
+                    "key.nameoffset" : 6904,
+                    "key.offset" : 6900,
                     "key.parsed_declaration" : "let oldIndex : Int",
-                    "key.parsed_scope.end" : 201,
-                    "key.parsed_scope.start" : 201,
+                    "key.parsed_scope.end" : 221,
+                    "key.parsed_scope.start" : 221,
                     "key.typename" : "Int",
                     "key.typeusr" : "$sSiD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7RemovedV8oldIndexSivp"
@@ -15633,17 +15788,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldValue: Section<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 22,
                     "key.name" : "oldValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6272,
-                    "key.offset" : 6268,
+                    "key.nameoffset" : 6948,
+                    "key.offset" : 6944,
                     "key.parsed_declaration" : "let oldValue : Section",
-                    "key.parsed_scope.end" : 203,
-                    "key.parsed_scope.start" : 203,
+                    "key.parsed_scope.end" : 223,
+                    "key.parsed_scope.start" : 223,
                     "key.typename" : "Section",
                     "key.typeusr" : "$sxD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7RemovedV8oldValuexvp"
@@ -15656,34 +15811,52 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Type>.Moved<\/Declaration>",
-                "key.bodylength" : 209,
-                "key.bodyoffset" : 6340,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 269,
+                "key.bodyoffset" : 7016,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/ref.struct>.Moved<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
-                "key.length" : 232,
+                "key.length" : 292,
                 "key.name" : "Moved",
                 "key.namelength" : 5,
-                "key.nameoffset" : 6325,
-                "key.offset" : 6318,
+                "key.nameoffset" : 7001,
+                "key.offset" : 6994,
                 "key.parsed_declaration" : "struct Moved",
-                "key.parsed_scope.end" : 215,
-                "key.parsed_scope.start" : 206,
+                "key.parsed_scope.end" : 237,
+                "key.parsed_scope.start" : 226,
                 "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "let identifier: SectionIdentifier<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: SectionIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 34,
+                    "key.name" : "identifier",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 7033,
+                    "key.offset" : 7029,
+                    "key.parsed_declaration" : "let identifier : SectionIdentifier",
+                    "key.parsed_scope.end" : 228,
+                    "key.parsed_scope.start" : 228,
+                    "key.typename" : "SectionIdentifier",
+                    "key.typeusr" : "$sq_D",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV10identifierq_vp"
+                  },
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 18,
                     "key.name" : "oldIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6357,
-                    "key.offset" : 6353,
+                    "key.nameoffset" : 7093,
+                    "key.offset" : 7089,
                     "key.parsed_declaration" : "let oldIndex : Int",
-                    "key.parsed_scope.end" : 208,
-                    "key.parsed_scope.start" : 208,
+                    "key.parsed_scope.end" : 230,
+                    "key.parsed_scope.start" : 230,
                     "key.typename" : "Int",
                     "key.typeusr" : "$sSiD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV8oldIndexSivp"
@@ -15691,17 +15864,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 18,
                     "key.name" : "newIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6388,
-                    "key.offset" : 6384,
+                    "key.nameoffset" : 7124,
+                    "key.offset" : 7120,
                     "key.parsed_declaration" : "let newIndex : Int",
-                    "key.parsed_scope.end" : 209,
-                    "key.parsed_scope.start" : 209,
+                    "key.parsed_scope.end" : 231,
+                    "key.parsed_scope.start" : 231,
                     "key.typename" : "Int",
                     "key.typeusr" : "$sSiD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV8newIndexSivp"
@@ -15709,17 +15882,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldValue: Section<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 22,
                     "key.name" : "oldValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6432,
-                    "key.offset" : 6428,
+                    "key.nameoffset" : 7168,
+                    "key.offset" : 7164,
                     "key.parsed_declaration" : "let oldValue : Section",
-                    "key.parsed_scope.end" : 211,
-                    "key.parsed_scope.start" : 211,
+                    "key.parsed_scope.end" : 233,
+                    "key.parsed_scope.start" : 233,
                     "key.typename" : "Section",
                     "key.typeusr" : "$sxD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV8oldValuexvp"
@@ -15727,17 +15900,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newValue: Section<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 22,
                     "key.name" : "newValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6467,
-                    "key.offset" : 6463,
+                    "key.nameoffset" : 7203,
+                    "key.offset" : 7199,
                     "key.parsed_declaration" : "let newValue : Section",
-                    "key.parsed_scope.end" : 212,
-                    "key.parsed_scope.start" : 212,
+                    "key.parsed_scope.end" : 234,
+                    "key.parsed_scope.start" : 234,
                     "key.typename" : "Section",
                     "key.typeusr" : "$sxD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV8newValuexvp"
@@ -15745,17 +15918,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let itemChanges: ItemChanges<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemChanges<\/decl.name>: ItemChanges<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 29,
                     "key.name" : "itemChanges",
                     "key.namelength" : 11,
-                    "key.nameoffset" : 6515,
-                    "key.offset" : 6511,
+                    "key.nameoffset" : 7251,
+                    "key.offset" : 7247,
                     "key.parsed_declaration" : "let itemChanges : ItemChanges",
-                    "key.parsed_scope.end" : 214,
-                    "key.parsed_scope.start" : 214,
+                    "key.parsed_scope.end" : 236,
+                    "key.parsed_scope.start" : 236,
                     "key.typename" : "SectionedDiff.ItemChanges",
                     "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__GD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV04itemF0AC04ItemF0Vyxq_q0_q1__Gvp"
@@ -15768,34 +15941,52 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Type>.NoChange<\/Declaration>",
-                "key.bodylength" : 209,
-                "key.bodyoffset" : 6593,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 269,
+                "key.bodyoffset" : 7329,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/ref.struct>.NoChange<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
-                "key.length" : 235,
+                "key.length" : 295,
                 "key.name" : "NoChange",
                 "key.namelength" : 8,
-                "key.nameoffset" : 6575,
-                "key.offset" : 6568,
+                "key.nameoffset" : 7311,
+                "key.offset" : 7304,
                 "key.parsed_declaration" : "struct NoChange",
-                "key.parsed_scope.end" : 226,
-                "key.parsed_scope.start" : 217,
+                "key.parsed_scope.end" : 250,
+                "key.parsed_scope.start" : 239,
                 "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "let identifier: SectionIdentifier<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: SectionIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 34,
+                    "key.name" : "identifier",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 7346,
+                    "key.offset" : 7342,
+                    "key.parsed_declaration" : "let identifier : SectionIdentifier",
+                    "key.parsed_scope.end" : 241,
+                    "key.parsed_scope.start" : 241,
+                    "key.typename" : "SectionIdentifier",
+                    "key.typeusr" : "$sq_D",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV10identifierq_vp"
+                  },
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldIndex: Int<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 18,
                     "key.name" : "oldIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6610,
-                    "key.offset" : 6606,
+                    "key.nameoffset" : 7406,
+                    "key.offset" : 7402,
                     "key.parsed_declaration" : "let oldIndex : Int",
-                    "key.parsed_scope.end" : 219,
-                    "key.parsed_scope.start" : 219,
+                    "key.parsed_scope.end" : 243,
+                    "key.parsed_scope.start" : 243,
                     "key.typename" : "Int",
                     "key.typeusr" : "$sSiD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV8oldIndexSivp"
@@ -15803,17 +15994,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newIndex: Int<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 18,
                     "key.name" : "newIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6641,
-                    "key.offset" : 6637,
+                    "key.nameoffset" : 7437,
+                    "key.offset" : 7433,
                     "key.parsed_declaration" : "let newIndex : Int",
-                    "key.parsed_scope.end" : 220,
-                    "key.parsed_scope.start" : 220,
+                    "key.parsed_scope.end" : 244,
+                    "key.parsed_scope.start" : 244,
                     "key.typename" : "Int",
                     "key.typeusr" : "$sSiD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV8newIndexSivp"
@@ -15821,17 +16012,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldValue: Section<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 22,
                     "key.name" : "oldValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6685,
-                    "key.offset" : 6681,
+                    "key.nameoffset" : 7481,
+                    "key.offset" : 7477,
                     "key.parsed_declaration" : "let oldValue : Section",
-                    "key.parsed_scope.end" : 222,
-                    "key.parsed_scope.start" : 222,
+                    "key.parsed_scope.end" : 246,
+                    "key.parsed_scope.start" : 246,
                     "key.typename" : "Section",
                     "key.typeusr" : "$sxD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV8oldValuexvp"
@@ -15839,17 +16030,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newValue: Section<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Section<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 22,
                     "key.name" : "newValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 6720,
-                    "key.offset" : 6716,
+                    "key.nameoffset" : 7516,
+                    "key.offset" : 7512,
                     "key.parsed_declaration" : "let newValue : Section",
-                    "key.parsed_scope.end" : 223,
-                    "key.parsed_scope.start" : 223,
+                    "key.parsed_scope.end" : 247,
+                    "key.parsed_scope.start" : 247,
                     "key.typename" : "Section",
                     "key.typeusr" : "$sxD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV8newValuexvp"
@@ -15857,17 +16048,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let itemChanges: ItemChanges<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemChanges<\/decl.name>: ItemChanges<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 29,
                     "key.name" : "itemChanges",
                     "key.namelength" : 11,
-                    "key.nameoffset" : 6768,
-                    "key.offset" : 6764,
+                    "key.nameoffset" : 7564,
+                    "key.offset" : 7560,
                     "key.parsed_declaration" : "let itemChanges : ItemChanges",
-                    "key.parsed_scope.end" : 225,
-                    "key.parsed_scope.start" : 225,
+                    "key.parsed_scope.end" : 249,
+                    "key.parsed_scope.start" : 249,
                     "key.typename" : "SectionedDiff.ItemChanges",
                     "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__GD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV04itemF0AC04ItemF0Vyxq_q0_q1__Gvp"
@@ -15885,34 +16076,34 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Declaration>",
-            "key.bodylength" : 3669,
-            "key.bodyoffset" : 6848,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.bodylength" : 4189,
+            "key.bodyoffset" : 7644,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 3694,
+            "key.length" : 4214,
             "key.name" : "ItemChanges",
             "key.namelength" : 11,
-            "key.nameoffset" : 6831,
-            "key.offset" : 6824,
+            "key.nameoffset" : 7627,
+            "key.offset" : 7620,
             "key.parsed_declaration" : "struct ItemChanges",
-            "key.parsed_scope.end" : 351,
-            "key.parsed_scope.start" : 230,
+            "key.parsed_scope.end" : 390,
+            "key.parsed_scope.start" : 254,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let added: [Added<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> added<\/decl.name>: [Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
                 "key.name" : "added",
                 "key.namelength" : 5,
-                "key.nameoffset" : 6861,
-                "key.offset" : 6857,
+                "key.nameoffset" : 7657,
+                "key.offset" : 7653,
                 "key.parsed_declaration" : "let added : [Added]",
-                "key.parsed_scope.end" : 232,
-                "key.parsed_scope.start" : 232,
+                "key.parsed_scope.end" : 256,
+                "key.parsed_scope.start" : 256,
                 "key.typename" : "[SectionedDiff.ItemChanges.Added]",
                 "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV5AddedVyxq_q0_q1___GGD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5addedSayAE5AddedVyxq_q0_q1___GGvp"
@@ -15920,17 +16111,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let removed: [Removed<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: [Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 23,
                 "key.name" : "removed",
                 "key.namelength" : 7,
-                "key.nameoffset" : 6889,
-                "key.offset" : 6885,
+                "key.nameoffset" : 7685,
+                "key.offset" : 7681,
                 "key.parsed_declaration" : "let removed : [Removed]",
-                "key.parsed_scope.end" : 233,
-                "key.parsed_scope.start" : 233,
+                "key.parsed_scope.end" : 257,
+                "key.parsed_scope.start" : 257,
                 "key.typename" : "[SectionedDiff.ItemChanges.Removed]",
                 "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7RemovedVyxq_q0_q1___GGD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7removedSayAE7RemovedVyxq_q0_q1___GGvp"
@@ -15938,17 +16129,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let moved: [Moved<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> moved<\/decl.name>: [Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
                 "key.name" : "moved",
                 "key.namelength" : 5,
-                "key.nameoffset" : 6930,
-                "key.offset" : 6926,
+                "key.nameoffset" : 7726,
+                "key.offset" : 7722,
                 "key.parsed_declaration" : "let moved : [Moved]",
-                "key.parsed_scope.end" : 235,
-                "key.parsed_scope.start" : 235,
+                "key.parsed_scope.end" : 259,
+                "key.parsed_scope.start" : 259,
                 "key.typename" : "[SectionedDiff.ItemChanges.Moved]",
                 "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV5MovedVyxq_q0_q1___GGD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5movedSayAE5MovedVyxq_q0_q1___GGvp"
@@ -15956,17 +16147,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let updated: [Updated<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> updated<\/decl.name>: [Updated<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 23,
                 "key.name" : "updated",
                 "key.namelength" : 7,
-                "key.nameoffset" : 6958,
-                "key.offset" : 6954,
+                "key.nameoffset" : 7754,
+                "key.offset" : 7750,
                 "key.parsed_declaration" : "let updated : [Updated]",
-                "key.parsed_scope.end" : 236,
-                "key.parsed_scope.start" : 236,
+                "key.parsed_scope.end" : 260,
+                "key.parsed_scope.start" : 260,
                 "key.typename" : "[SectionedDiff.ItemChanges.Updated]",
                 "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7UpdatedVyxq_q0_q1___GGD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7updatedSayAE7UpdatedVyxq_q0_q1___GGvp"
@@ -15974,17 +16165,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let noChange: [NoChange<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> noChange<\/decl.name>: [NoChange<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
                 "key.name" : "noChange",
                 "key.namelength" : 8,
-                "key.nameoffset" : 6990,
-                "key.offset" : 6986,
+                "key.nameoffset" : 7786,
+                "key.offset" : 7782,
                 "key.parsed_declaration" : "let noChange : [NoChange]",
-                "key.parsed_scope.end" : 237,
-                "key.parsed_scope.start" : 237,
+                "key.parsed_scope.end" : 261,
+                "key.parsed_scope.start" : 261,
                 "key.typename" : "[SectionedDiff.ItemChanges.NoChange]",
                 "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV8NoChangeVyxq_q0_q1___GGD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8noChangeSayAE02NoH0Vyxq_q0_q1___GGvp"
@@ -15992,17 +16183,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let changeCount: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> changeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
                 "key.name" : "changeCount",
                 "key.namelength" : 11,
-                "key.nameoffset" : 7033,
-                "key.offset" : 7029,
+                "key.nameoffset" : 7829,
+                "key.offset" : 7825,
                 "key.parsed_declaration" : "let changeCount : Int",
-                "key.parsed_scope.end" : 239,
-                "key.parsed_scope.start" : 239,
+                "key.parsed_scope.end" : 263,
+                "key.parsed_scope.start" : 263,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV11changeCountSivp"
@@ -16010,17 +16201,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let diff: ArrayDiff<\/Type><Item<\/Type>, ItemIdentifier<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> diff<\/decl.name>: ArrayDiff<\/ref.struct><Item<\/ref.generic_type_param>, ItemIdentifier<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 42,
                 "key.name" : "diff",
                 "key.namelength" : 4,
-                "key.nameoffset" : 7072,
-                "key.offset" : 7068,
+                "key.nameoffset" : 7868,
+                "key.offset" : 7864,
                 "key.parsed_declaration" : "let diff : ArrayDiff",
-                "key.parsed_scope.end" : 241,
-                "key.parsed_scope.start" : 241,
+                "key.parsed_scope.end" : 265,
+                "key.parsed_scope.start" : 265,
                 "key.typename" : "ArrayDiff",
                 "key.typeusr" : "$s10ListableUI9ArrayDiffVyq0_q1_GD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV4diffAA05ArrayD0Vyq0_q1_Gvp"
@@ -16029,18 +16220,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "init(old: Section<\/Type>, oldIndex: Int<\/Type>, new: Section<\/Type>, newIndex: Int<\/Type>, configuration: Configuration<\/Type>)<\/Declaration>",
                 "key.bodylength" : 273,
-                "key.bodyoffset" : 7234,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 8030,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, oldIndex<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, newIndex<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 380,
                 "key.name" : "init(old:oldIndex:new:newIndex:configuration:)",
                 "key.namelength" : 96,
-                "key.nameoffset" : 7128,
-                "key.offset" : 7128,
+                "key.nameoffset" : 7924,
+                "key.offset" : 7924,
                 "key.parsed_declaration" : "init(old : Section, oldIndex : Int, new : Section, newIndex : Int, configuration: Configuration)",
-                "key.parsed_scope.end" : 252,
-                "key.parsed_scope.start" : 243,
+                "key.parsed_scope.end" : 276,
+                "key.parsed_scope.start" : 267,
                 "key.related_decls" : [
                   {
                     "key.annotated_decl" : "init(old: [Item], oldIndex: Int, new: [Item], newIndex: Int, configuration: Configuration)<\/RelatedName>"
@@ -16056,19 +16247,19 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "init(old: [Item<\/Type>], oldIndex: Int<\/Type>, new: [Item<\/Type>], newIndex: Int<\/Type>, configuration: Configuration<\/Type>)<\/Declaration>",
-                "key.bodylength" : 2006,
-                "key.bodyoffset" : 7631,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 2241,
+                "key.bodyoffset" : 8427,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(old<\/decl.var.parameter.argument_label>: [Item<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, oldIndex<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Item<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, newIndex<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, configuration<\/decl.var.parameter.argument_label>: Configuration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 2112,
+                "key.length" : 2347,
                 "key.name" : "init(old:oldIndex:new:newIndex:configuration:)",
                 "key.namelength" : 95,
-                "key.nameoffset" : 7526,
-                "key.offset" : 7526,
+                "key.nameoffset" : 8322,
+                "key.offset" : 8322,
                 "key.parsed_declaration" : "init(old : [Item], oldIndex : Int, new : [Item], newIndex : Int, configuration : Configuration)",
-                "key.parsed_scope.end" : 309,
-                "key.parsed_scope.start" : 254,
+                "key.parsed_scope.end" : 338,
+                "key.parsed_scope.start" : 278,
                 "key.related_decls" : [
                   {
                     "key.annotated_decl" : "init(old: Section, oldIndex: Int, new: Section, newIndex: Int, configuration: Configuration)<\/RelatedName>"
@@ -16084,34 +16275,52 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.Added<\/Declaration>",
-                "key.bodylength" : 91,
-                "key.bodyoffset" : 9678,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 148,
+                "key.bodyoffset" : 10709,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.Added<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
-                "key.length" : 114,
+                "key.length" : 171,
                 "key.name" : "Added",
                 "key.namelength" : 5,
-                "key.nameoffset" : 9663,
-                "key.offset" : 9656,
+                "key.nameoffset" : 10694,
+                "key.offset" : 10687,
                 "key.parsed_declaration" : "struct Added",
-                "key.parsed_scope.end" : 316,
-                "key.parsed_scope.start" : 311,
+                "key.parsed_scope.end" : 347,
+                "key.parsed_scope.start" : 340,
                 "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 31,
+                    "key.name" : "identifier",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 10726,
+                    "key.offset" : 10722,
+                    "key.parsed_declaration" : "let identifier : ItemIdentifier",
+                    "key.parsed_scope.end" : 342,
+                    "key.parsed_scope.start" : 342,
+                    "key.typename" : "ItemIdentifier",
+                    "key.typeusr" : "$sq1_D",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5AddedV10identifierq1_vp"
+                  },
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newIndex: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 24,
                     "key.name" : "newIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 9695,
-                    "key.offset" : 9691,
+                    "key.nameoffset" : 10783,
+                    "key.offset" : 10779,
                     "key.parsed_declaration" : "let newIndex : IndexPath",
-                    "key.parsed_scope.end" : 313,
-                    "key.parsed_scope.start" : 313,
+                    "key.parsed_scope.end" : 344,
+                    "key.parsed_scope.start" : 344,
                     "key.typename" : "IndexPath",
                     "key.typeusr" : "$s10Foundation9IndexPathVD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5AddedV8newIndex10Foundation0I4PathVvp"
@@ -16119,17 +16328,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newValue: Item<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 19,
                     "key.name" : "newValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 9745,
-                    "key.offset" : 9741,
+                    "key.nameoffset" : 10833,
+                    "key.offset" : 10829,
                     "key.parsed_declaration" : "let newValue : Item",
-                    "key.parsed_scope.end" : 315,
-                    "key.parsed_scope.start" : 315,
+                    "key.parsed_scope.end" : 346,
+                    "key.parsed_scope.start" : 346,
                     "key.typename" : "Item",
                     "key.typeusr" : "$sq0_D",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5AddedV8newValueq0_vp"
@@ -16142,34 +16351,52 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.Removed<\/Declaration>",
-                "key.bodylength" : 91,
-                "key.bodyoffset" : 9812,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 148,
+                "key.bodyoffset" : 10900,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.Removed<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
-                "key.length" : 116,
+                "key.length" : 173,
                 "key.name" : "Removed",
                 "key.namelength" : 7,
-                "key.nameoffset" : 9795,
-                "key.offset" : 9788,
+                "key.nameoffset" : 10883,
+                "key.offset" : 10876,
                 "key.parsed_declaration" : "struct Removed",
-                "key.parsed_scope.end" : 323,
-                "key.parsed_scope.start" : 318,
+                "key.parsed_scope.end" : 356,
+                "key.parsed_scope.start" : 349,
                 "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 31,
+                    "key.name" : "identifier",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 10917,
+                    "key.offset" : 10913,
+                    "key.parsed_declaration" : "let identifier : ItemIdentifier",
+                    "key.parsed_scope.end" : 351,
+                    "key.parsed_scope.start" : 351,
+                    "key.typename" : "ItemIdentifier",
+                    "key.typeusr" : "$sq1_D",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7RemovedV10identifierq1_vp"
+                  },
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldIndex: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 24,
                     "key.name" : "oldIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 9829,
-                    "key.offset" : 9825,
+                    "key.nameoffset" : 10974,
+                    "key.offset" : 10970,
                     "key.parsed_declaration" : "let oldIndex : IndexPath",
-                    "key.parsed_scope.end" : 320,
-                    "key.parsed_scope.start" : 320,
+                    "key.parsed_scope.end" : 353,
+                    "key.parsed_scope.start" : 353,
                     "key.typename" : "IndexPath",
                     "key.typeusr" : "$s10Foundation9IndexPathVD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7RemovedV8oldIndex10Foundation0I4PathVvp"
@@ -16177,17 +16404,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldValue: Item<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 19,
                     "key.name" : "oldValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 9879,
-                    "key.offset" : 9875,
+                    "key.nameoffset" : 11024,
+                    "key.offset" : 11020,
                     "key.parsed_declaration" : "let oldValue : Item",
-                    "key.parsed_scope.end" : 322,
-                    "key.parsed_scope.start" : 322,
+                    "key.parsed_scope.end" : 355,
+                    "key.parsed_scope.start" : 355,
                     "key.typename" : "Item",
                     "key.typeusr" : "$sq0_D",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7RemovedV8oldValueq0_vp"
@@ -16200,34 +16427,52 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.Moved<\/Declaration>",
-                "key.bodylength" : 160,
-                "key.bodyoffset" : 9944,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 217,
+                "key.bodyoffset" : 11089,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.Moved<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
-                "key.length" : 183,
+                "key.length" : 240,
                 "key.name" : "Moved",
                 "key.namelength" : 5,
-                "key.nameoffset" : 9929,
-                "key.offset" : 9922,
+                "key.nameoffset" : 11074,
+                "key.offset" : 11067,
                 "key.parsed_declaration" : "struct Moved",
-                "key.parsed_scope.end" : 332,
-                "key.parsed_scope.start" : 325,
+                "key.parsed_scope.end" : 367,
+                "key.parsed_scope.start" : 358,
                 "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 31,
+                    "key.name" : "identifier",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 11106,
+                    "key.offset" : 11102,
+                    "key.parsed_declaration" : "let identifier : ItemIdentifier",
+                    "key.parsed_scope.end" : 360,
+                    "key.parsed_scope.start" : 360,
+                    "key.typename" : "ItemIdentifier",
+                    "key.typeusr" : "$sq1_D",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV10identifierq1_vp"
+                  },
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldIndex: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 24,
                     "key.name" : "oldIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 9961,
-                    "key.offset" : 9957,
+                    "key.nameoffset" : 11163,
+                    "key.offset" : 11159,
                     "key.parsed_declaration" : "let oldIndex : IndexPath",
-                    "key.parsed_scope.end" : 327,
-                    "key.parsed_scope.start" : 327,
+                    "key.parsed_scope.end" : 362,
+                    "key.parsed_scope.start" : 362,
                     "key.typename" : "IndexPath",
                     "key.typeusr" : "$s10Foundation9IndexPathVD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV8oldIndex10Foundation0I4PathVvp"
@@ -16235,17 +16480,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newIndex: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 24,
                     "key.name" : "newIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 9998,
-                    "key.offset" : 9994,
+                    "key.nameoffset" : 11200,
+                    "key.offset" : 11196,
                     "key.parsed_declaration" : "let newIndex : IndexPath",
-                    "key.parsed_scope.end" : 328,
-                    "key.parsed_scope.start" : 328,
+                    "key.parsed_scope.end" : 363,
+                    "key.parsed_scope.start" : 363,
                     "key.typename" : "IndexPath",
                     "key.typeusr" : "$s10Foundation9IndexPathVD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV8newIndex10Foundation0I4PathVvp"
@@ -16253,17 +16498,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var oldValue: Item<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 19,
                     "key.name" : "oldValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10048,
-                    "key.offset" : 10044,
+                    "key.nameoffset" : 11250,
+                    "key.offset" : 11246,
                     "key.parsed_declaration" : "var oldValue : Item",
-                    "key.parsed_scope.end" : 330,
-                    "key.parsed_scope.start" : 330,
+                    "key.parsed_scope.end" : 365,
+                    "key.parsed_scope.start" : 365,
                     "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
                     "key.typename" : "Item",
                     "key.typeusr" : "$sq0_D",
@@ -16272,17 +16517,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var newValue: Item<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 19,
                     "key.name" : "newValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10080,
-                    "key.offset" : 10076,
+                    "key.nameoffset" : 11282,
+                    "key.offset" : 11278,
                     "key.parsed_declaration" : "var newValue : Item",
-                    "key.parsed_scope.end" : 331,
-                    "key.parsed_scope.start" : 331,
+                    "key.parsed_scope.end" : 366,
+                    "key.parsed_scope.start" : 366,
                     "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
                     "key.typename" : "Item",
                     "key.typeusr" : "$sq0_D",
@@ -16296,34 +16541,52 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.Updated<\/Declaration>",
-                "key.bodylength" : 160,
-                "key.bodyoffset" : 10147,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 217,
+                "key.bodyoffset" : 11349,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.Updated<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
-                "key.length" : 185,
+                "key.length" : 242,
                 "key.name" : "Updated",
                 "key.namelength" : 7,
-                "key.nameoffset" : 10130,
-                "key.offset" : 10123,
+                "key.nameoffset" : 11332,
+                "key.offset" : 11325,
                 "key.parsed_declaration" : "struct Updated",
-                "key.parsed_scope.end" : 341,
-                "key.parsed_scope.start" : 334,
+                "key.parsed_scope.end" : 378,
+                "key.parsed_scope.start" : 369,
                 "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 31,
+                    "key.name" : "identifier",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 11366,
+                    "key.offset" : 11362,
+                    "key.parsed_declaration" : "let identifier : ItemIdentifier",
+                    "key.parsed_scope.end" : 371,
+                    "key.parsed_scope.start" : 371,
+                    "key.typename" : "ItemIdentifier",
+                    "key.typeusr" : "$sq1_D",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV10identifierq1_vp"
+                  },
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldIndex: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 24,
                     "key.name" : "oldIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10164,
-                    "key.offset" : 10160,
+                    "key.nameoffset" : 11423,
+                    "key.offset" : 11419,
                     "key.parsed_declaration" : "let oldIndex : IndexPath",
-                    "key.parsed_scope.end" : 336,
-                    "key.parsed_scope.start" : 336,
+                    "key.parsed_scope.end" : 373,
+                    "key.parsed_scope.start" : 373,
                     "key.typename" : "IndexPath",
                     "key.typeusr" : "$s10Foundation9IndexPathVD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV8oldIndex10Foundation0I4PathVvp"
@@ -16331,17 +16594,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newIndex: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 24,
                     "key.name" : "newIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10201,
-                    "key.offset" : 10197,
+                    "key.nameoffset" : 11460,
+                    "key.offset" : 11456,
                     "key.parsed_declaration" : "let newIndex : IndexPath",
-                    "key.parsed_scope.end" : 337,
-                    "key.parsed_scope.start" : 337,
+                    "key.parsed_scope.end" : 374,
+                    "key.parsed_scope.start" : 374,
                     "key.typename" : "IndexPath",
                     "key.typeusr" : "$s10Foundation9IndexPathVD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV8newIndex10Foundation0I4PathVvp"
@@ -16349,17 +16612,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldValue: Item<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 19,
                     "key.name" : "oldValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10251,
-                    "key.offset" : 10247,
+                    "key.nameoffset" : 11510,
+                    "key.offset" : 11506,
                     "key.parsed_declaration" : "let oldValue : Item",
-                    "key.parsed_scope.end" : 339,
-                    "key.parsed_scope.start" : 339,
+                    "key.parsed_scope.end" : 376,
+                    "key.parsed_scope.start" : 376,
                     "key.typename" : "Item",
                     "key.typeusr" : "$sq0_D",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV8oldValueq0_vp"
@@ -16367,17 +16630,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newValue: Item<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 19,
                     "key.name" : "newValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10283,
-                    "key.offset" : 10279,
+                    "key.nameoffset" : 11542,
+                    "key.offset" : 11538,
                     "key.parsed_declaration" : "let newValue : Item",
-                    "key.parsed_scope.end" : 340,
-                    "key.parsed_scope.start" : 340,
+                    "key.parsed_scope.end" : 377,
+                    "key.parsed_scope.start" : 377,
                     "key.typename" : "Item",
                     "key.typeusr" : "$sq0_D",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV8newValueq0_vp"
@@ -16390,34 +16653,52 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.NoChange<\/Declaration>",
-                "key.bodylength" : 160,
-                "key.bodyoffset" : 10351,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodylength" : 217,
+                "key.bodyoffset" : 11610,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.NoChange<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
-                "key.length" : 186,
+                "key.length" : 243,
                 "key.name" : "NoChange",
                 "key.namelength" : 8,
-                "key.nameoffset" : 10333,
-                "key.offset" : 10326,
+                "key.nameoffset" : 11592,
+                "key.offset" : 11585,
                 "key.parsed_declaration" : "struct NoChange",
-                "key.parsed_scope.end" : 350,
-                "key.parsed_scope.start" : 343,
+                "key.parsed_scope.end" : 389,
+                "key.parsed_scope.start" : 380,
                 "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "let identifier: ItemIdentifier<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ItemIdentifier<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 31,
+                    "key.name" : "identifier",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 11627,
+                    "key.offset" : 11623,
+                    "key.parsed_declaration" : "let identifier : ItemIdentifier",
+                    "key.parsed_scope.end" : 382,
+                    "key.parsed_scope.start" : 382,
+                    "key.typename" : "ItemIdentifier",
+                    "key.typeusr" : "$sq1_D",
+                    "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV10identifierq1_vp"
+                  },
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldIndex: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 24,
                     "key.name" : "oldIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10368,
-                    "key.offset" : 10364,
+                    "key.nameoffset" : 11684,
+                    "key.offset" : 11680,
                     "key.parsed_declaration" : "let oldIndex : IndexPath",
-                    "key.parsed_scope.end" : 345,
-                    "key.parsed_scope.start" : 345,
+                    "key.parsed_scope.end" : 384,
+                    "key.parsed_scope.start" : 384,
                     "key.typename" : "IndexPath",
                     "key.typeusr" : "$s10Foundation9IndexPathVD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV8oldIndex10Foundation0J4PathVvp"
@@ -16425,17 +16706,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newIndex: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIndex<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 24,
                     "key.name" : "newIndex",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10405,
-                    "key.offset" : 10401,
+                    "key.nameoffset" : 11721,
+                    "key.offset" : 11717,
                     "key.parsed_declaration" : "let newIndex : IndexPath",
-                    "key.parsed_scope.end" : 346,
-                    "key.parsed_scope.start" : 346,
+                    "key.parsed_scope.end" : 385,
+                    "key.parsed_scope.start" : 385,
                     "key.typename" : "IndexPath",
                     "key.typeusr" : "$s10Foundation9IndexPathVD",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV8newIndex10Foundation0J4PathVvp"
@@ -16443,17 +16724,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let oldValue: Item<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 19,
                     "key.name" : "oldValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10455,
-                    "key.offset" : 10451,
+                    "key.nameoffset" : 11771,
+                    "key.offset" : 11767,
                     "key.parsed_declaration" : "let oldValue : Item",
-                    "key.parsed_scope.end" : 348,
-                    "key.parsed_scope.start" : 348,
+                    "key.parsed_scope.end" : 387,
+                    "key.parsed_scope.start" : 387,
                     "key.typename" : "Item",
                     "key.typeusr" : "$sq0_D",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV8oldValueq0_vp"
@@ -16461,17 +16742,17 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let newValue: Item<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newValue<\/decl.name>: Item<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 19,
                     "key.name" : "newValue",
                     "key.namelength" : 8,
-                    "key.nameoffset" : 10487,
-                    "key.offset" : 10483,
+                    "key.nameoffset" : 11803,
+                    "key.offset" : 11799,
                     "key.parsed_declaration" : "let newValue : Item",
-                    "key.parsed_scope.end" : 349,
-                    "key.parsed_scope.start" : 349,
+                    "key.parsed_scope.end" : 388,
+                    "key.parsed_scope.start" : 388,
                     "key.typename" : "Item",
                     "key.typeusr" : "$sq0_D",
                     "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV8newValueq0_vp"
@@ -16494,15 +16775,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Type>.Added<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 10605,
+        "key.bodyoffset" : 11936,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 10570
+            "key.offset" : 11885
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/ref.struct>.Added<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16510,14 +16791,14 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 83,
+        "key.length" : 99,
         "key.name" : "SectionedDiff.SectionChanges.Added",
         "key.namelength" : 34,
-        "key.nameoffset" : 10533,
-        "key.offset" : 10523,
-        "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.Added : Equatable where Section:Equatable",
-        "key.parsed_scope.end" : 355,
-        "key.parsed_scope.start" : 355,
+        "key.nameoffset" : 11848,
+        "key.offset" : 11838,
+        "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.Added : Equatable where Section:Equatable, Item:Equatable",
+        "key.parsed_scope.end" : 393,
+        "key.parsed_scope.start" : 393,
         "key.typename" : "SectionedDiff.SectionChanges.Added.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV5AddedVyxq_q0_q1___GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5AddedV"
@@ -16525,15 +16806,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Type>.Removed<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 10691,
+        "key.bodyoffset" : 12038,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 10656
+            "key.offset" : 11987
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/ref.struct>.Removed<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16541,14 +16822,14 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 85,
+        "key.length" : 101,
         "key.name" : "SectionedDiff.SectionChanges.Removed",
         "key.namelength" : 36,
-        "key.nameoffset" : 10617,
-        "key.offset" : 10607,
-        "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.Removed : Equatable where Section:Equatable",
-        "key.parsed_scope.end" : 356,
-        "key.parsed_scope.start" : 356,
+        "key.nameoffset" : 11948,
+        "key.offset" : 11938,
+        "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.Removed : Equatable where Section:Equatable, Item:Equatable",
+        "key.parsed_scope.end" : 394,
+        "key.parsed_scope.start" : 394,
         "key.typename" : "SectionedDiff.SectionChanges.Removed.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV7RemovedVyxq_q0_q1___GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7RemovedV"
@@ -16556,15 +16837,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Type>.Moved<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 10791,
+        "key.bodyoffset" : 12138,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 10740
+            "key.offset" : 12087
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/ref.struct>.Moved<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16575,11 +16856,11 @@
         "key.length" : 99,
         "key.name" : "SectionedDiff.SectionChanges.Moved",
         "key.namelength" : 34,
-        "key.nameoffset" : 10703,
-        "key.offset" : 10693,
+        "key.nameoffset" : 12050,
+        "key.offset" : 12040,
         "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.Moved : Equatable where Section:Equatable, Item:Equatable",
-        "key.parsed_scope.end" : 357,
-        "key.parsed_scope.start" : 357,
+        "key.parsed_scope.end" : 395,
+        "key.parsed_scope.start" : 395,
         "key.typename" : "SectionedDiff.SectionChanges.Moved.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV5MovedVyxq_q0_q1___GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV5MovedV"
@@ -16587,15 +16868,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Type>.NoChange<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 10894,
+        "key.bodyoffset" : 12241,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 10843
+            "key.offset" : 12190
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/ref.struct>.NoChange<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16606,11 +16887,11 @@
         "key.length" : 102,
         "key.name" : "SectionedDiff.SectionChanges.NoChange",
         "key.namelength" : 37,
-        "key.nameoffset" : 10803,
-        "key.offset" : 10793,
+        "key.nameoffset" : 12150,
+        "key.offset" : 12140,
         "key.parsed_declaration" : "extension SectionedDiff.SectionChanges.NoChange : Equatable where Section:Equatable, Item:Equatable",
-        "key.parsed_scope.end" : 358,
-        "key.parsed_scope.start" : 358,
+        "key.parsed_scope.end" : 396,
+        "key.parsed_scope.start" : 396,
         "key.typename" : "SectionedDiff.SectionChanges.NoChange.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV14SectionChangesV8NoChangeVyxq_q0_q1___GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV8NoChangeV"
@@ -16618,15 +16899,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 10967,
+        "key.bodyoffset" : 12314,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 10935
+            "key.offset" : 12282
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16637,11 +16918,11 @@
         "key.length" : 71,
         "key.name" : "SectionedDiff.ItemChanges",
         "key.namelength" : 25,
-        "key.nameoffset" : 10907,
-        "key.offset" : 10897,
+        "key.nameoffset" : 12254,
+        "key.offset" : 12244,
         "key.parsed_declaration" : "extension SectionedDiff.ItemChanges : Equatable where Item:Equatable",
-        "key.parsed_scope.end" : 360,
-        "key.parsed_scope.start" : 360,
+        "key.parsed_scope.end" : 398,
+        "key.parsed_scope.start" : 398,
         "key.typename" : "SectionedDiff.ItemChanges.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesVyxq_q0_q1__GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV"
@@ -16649,15 +16930,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.Added<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 11046,
+        "key.bodyoffset" : 12393,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 11014
+            "key.offset" : 12361
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.Added<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16668,11 +16949,11 @@
         "key.length" : 77,
         "key.name" : "SectionedDiff.ItemChanges.Added",
         "key.namelength" : 31,
-        "key.nameoffset" : 10980,
-        "key.offset" : 10970,
+        "key.nameoffset" : 12327,
+        "key.offset" : 12317,
         "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.Added : Equatable where Item:Equatable",
-        "key.parsed_scope.end" : 362,
-        "key.parsed_scope.start" : 362,
+        "key.parsed_scope.end" : 400,
+        "key.parsed_scope.start" : 400,
         "key.typename" : "SectionedDiff.ItemChanges.Added.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV5AddedVyxq_q0_q1___GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5AddedV"
@@ -16680,15 +16961,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.Removed<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 11126,
+        "key.bodyoffset" : 12473,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 11094
+            "key.offset" : 12441
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.Removed<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16699,11 +16980,11 @@
         "key.length" : 79,
         "key.name" : "SectionedDiff.ItemChanges.Removed",
         "key.namelength" : 33,
-        "key.nameoffset" : 11058,
-        "key.offset" : 11048,
+        "key.nameoffset" : 12405,
+        "key.offset" : 12395,
         "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.Removed : Equatable where Item:Equatable",
-        "key.parsed_scope.end" : 363,
-        "key.parsed_scope.start" : 363,
+        "key.parsed_scope.end" : 401,
+        "key.parsed_scope.start" : 401,
         "key.typename" : "SectionedDiff.ItemChanges.Removed.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV7RemovedVyxq_q0_q1___GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7RemovedV"
@@ -16711,15 +16992,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.Moved<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 11204,
+        "key.bodyoffset" : 12551,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 11172
+            "key.offset" : 12519
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.Moved<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16730,11 +17011,11 @@
         "key.length" : 77,
         "key.name" : "SectionedDiff.ItemChanges.Moved",
         "key.namelength" : 31,
-        "key.nameoffset" : 11138,
-        "key.offset" : 11128,
+        "key.nameoffset" : 12485,
+        "key.offset" : 12475,
         "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.Moved : Equatable where Item:Equatable",
-        "key.parsed_scope.end" : 364,
-        "key.parsed_scope.start" : 364,
+        "key.parsed_scope.end" : 402,
+        "key.parsed_scope.start" : 402,
         "key.typename" : "SectionedDiff.ItemChanges.Moved.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV5MovedVyxq_q0_q1___GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV5MovedV"
@@ -16742,15 +17023,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.Updated<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 11284,
+        "key.bodyoffset" : 12631,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 11252
+            "key.offset" : 12599
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.Updated<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16761,11 +17042,11 @@
         "key.length" : 79,
         "key.name" : "SectionedDiff.ItemChanges.Updated",
         "key.namelength" : 33,
-        "key.nameoffset" : 11216,
-        "key.offset" : 11206,
+        "key.nameoffset" : 12563,
+        "key.offset" : 12553,
         "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.Updated : Equatable where Item:Equatable",
-        "key.parsed_scope.end" : 365,
-        "key.parsed_scope.start" : 365,
+        "key.parsed_scope.end" : 403,
+        "key.parsed_scope.start" : 403,
         "key.typename" : "SectionedDiff.ItemChanges.Updated.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV7UpdatedVyxq_q0_q1___GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7UpdatedV"
@@ -16773,15 +17054,15 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Type>.NoChange<\/Declaration>",
         "key.bodylength" : 0,
-        "key.bodyoffset" : 11365,
+        "key.bodyoffset" : 12712,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 11333
+            "key.offset" : 12680
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/ref.struct>.NoChange<\/decl.name><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -16792,11 +17073,11 @@
         "key.length" : 80,
         "key.name" : "SectionedDiff.ItemChanges.NoChange",
         "key.namelength" : 34,
-        "key.nameoffset" : 11296,
-        "key.offset" : 11286,
+        "key.nameoffset" : 12643,
+        "key.offset" : 12633,
         "key.parsed_declaration" : "extension SectionedDiff.ItemChanges.NoChange : Equatable where Item:Equatable",
-        "key.parsed_scope.end" : 366,
-        "key.parsed_scope.start" : 366,
+        "key.parsed_scope.end" : 404,
+        "key.parsed_scope.start" : 404,
         "key.typename" : "SectionedDiff.ItemChanges.NoChange.Type",
         "key.typeusr" : "$s10ListableUI13SectionedDiffV11ItemChangesV8NoChangeVyxq_q0_q1___GmD",
         "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV8NoChangeV"
@@ -16804,99 +17085,99 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/Declaration>",
         "key.bodylength" : 2564,
-        "key.bodyoffset" : 11409,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.bodyoffset" : 12756,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.SectionChanges<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 2605,
         "key.name" : "SectionedDiff.SectionChanges",
         "key.namelength" : 28,
-        "key.nameoffset" : 11379,
-        "key.offset" : 11369,
+        "key.nameoffset" : 12726,
+        "key.offset" : 12716,
         "key.parsed_declaration" : "extension SectionedDiff.SectionChanges",
-        "key.parsed_scope.end" : 455,
-        "key.parsed_scope.start" : 369,
+        "key.parsed_scope.end" : 493,
+        "key.parsed_scope.start" : 407,
         "key.substructure" : [
           {
             "key.annotated_decl" : "func transform<Mapped>(old: [Mapped<\/Type>], removed: (Section<\/Type>, Mapped<\/Type>) -> (), added: (Section<\/Type>) -> Mapped<\/Type>, moved: (Section<\/Type>, Section<\/Type>, SectionedDiff<\/Type>.ItemChanges<\/Type>, inout Mapped<\/Type>) -> (), noChange: (Section<\/Type>, Section<\/Type>, SectionedDiff<\/Type>.ItemChanges<\/Type>, inout Mapped<\/Type>) -> ()) -> [Mapped<\/Type>]<\/Declaration>",
             "key.bodylength" : 1191,
-            "key.bodyoffset" : 11737,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.bodyoffset" : 13084,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> transform<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(old<\/decl.var.parameter.argument_label>: [Mapped<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, removed<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, added<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, moved<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, SectionedDiff<\/ref.struct>.ItemChanges<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, noChange<\/decl.var.parameter.argument_label>: (Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Section<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, SectionedDiff<\/ref.struct>.ItemChanges<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1515,
             "key.name" : "transform(old:removed:added:moved:noChange:)",
             "key.namelength" : 300,
-            "key.nameoffset" : 11419,
-            "key.offset" : 11414,
+            "key.nameoffset" : 12766,
+            "key.offset" : 12761,
             "key.parsed_declaration" : "func transform(\n    old : [Mapped],\n    removed : (Section, Mapped) -> (),\n    added : (Section) -> Mapped,\n    moved : (Section, Section, SectionedDiff.ItemChanges, inout Mapped) -> (),\n    noChange : (Section, Section, SectionedDiff.ItemChanges, inout Mapped) -> ()\n    ) -> [Mapped]",
-            "key.parsed_scope.end" : 414,
-            "key.parsed_scope.start" : 371,
+            "key.parsed_scope.end" : 452,
+            "key.parsed_scope.start" : 409,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
                 "key.name" : "Mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 11429,
-                "key.offset" : 11429,
+                "key.nameoffset" : 12776,
+                "key.offset" : 12776,
                 "key.parsed_declaration" : "func transformlet removes: [Removal<\/Type><Mapped<\/Type>>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removes<\/decl.name>: [Removal<\/ref.enum><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 275,
                 "key.name" : "removes",
                 "key.namelength" : 7,
-                "key.nameoffset" : 11750,
-                "key.offset" : 11746,
+                "key.nameoffset" : 13097,
+                "key.offset" : 13093,
                 "key.parsed_declaration" : "let removes : [Removal] = (self.removed.map({\n    removed($0.oldValue, old[$0.oldIndex])\n    return .remove(old[$0.oldIndex], $0)\n}) + self.moved.map({\n    .move(old[$0.oldIndex], $0)\n})).sorted(by: {$0.oldIndex > $1.oldIndex})",
-                "key.parsed_scope.end" : 379,
-                "key.parsed_scope.start" : 379,
+                "key.parsed_scope.end" : 417,
+                "key.parsed_scope.start" : 417,
                 "key.typename" : "[SectionedDiff.SectionChanges.Removal]",
                 "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9transform3old7removed5added5moved8noChangeSayqd__GAL_yx_qd__tXEqd__xXEyx_xAC04ItemF0Vyxq_q0_q1__Gqd__ztXEyx_xAOqd__ztXEtlF7removesL_SayAE7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGvp"
               },
               {
                 "key.annotated_decl" : "let inserts: [Insertion<\/Type><Mapped<\/Type>>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> inserts<\/decl.name>: [Insertion<\/ref.enum><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 358,
                 "key.name" : "inserts",
                 "key.namelength" : 7,
-                "key.nameoffset" : 12043,
-                "key.offset" : 12039,
+                "key.nameoffset" : 13390,
+                "key.offset" : 13386,
                 "key.parsed_declaration" : "let inserts : [Insertion] = (self.added.map({\n    let value = added($0.newValue)\n    return .add(value, $0)\n}) + self.moved.map({\n    var value = old[$0.oldIndex]\n    moved($0.oldValue, $0.newValue, $0.itemChanges, &value)\n    return .move(value, $0)\n})).sorted(by: {$0.newIndex < $1.newIndex})",
-                "key.parsed_scope.end" : 386,
-                "key.parsed_scope.start" : 386,
+                "key.parsed_scope.end" : 424,
+                "key.parsed_scope.start" : 424,
                 "key.typename" : "[SectionedDiff.SectionChanges.Insertion]",
                 "key.typeusr" : "$sSay10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9transform3old7removed5added5moved8noChangeSayqd__GAL_yx_qd__tXEqd__xXEyx_xAC04ItemF0Vyxq_q0_q1__Gqd__ztXEyx_xAOqd__ztXEtlF7insertsL_SayAE9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGvp"
               },
               {
                 "key.annotated_decl" : "var new: [Mapped]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: [Mapped]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 13,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 12419,
-                "key.offset" : 12415,
+                "key.nameoffset" : 13766,
+                "key.offset" : 13762,
                 "key.parsed_declaration" : "var new = old",
-                "key.parsed_scope.end" : 395,
-                "key.parsed_scope.start" : 395,
+                "key.parsed_scope.end" : 433,
+                "key.parsed_scope.start" : 433,
                 "key.typename" : "[Mapped]",
                 "key.typeusr" : "$sSayqd__GD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9transform3old7removed5added5moved8noChangeSayqd__GAL_yx_qd__tXEqd__xXEyx_xAC04ItemF0Vyxq_q0_q1__Gqd__ztXEyx_xAOqd__ztXEtlF3newL_ALvp"
@@ -16913,36 +17194,36 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 12939
+                "key.offset" : 14286
               }
             ],
             "key.bodylength" : 469,
-            "key.bodyoffset" : 12975,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.bodyoffset" : 14322,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Insertion<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.enum>",
             "key.kind" : "source.lang.swift.decl.enum",
             "key.length" : 498,
             "key.name" : "Insertion",
             "key.namelength" : 9,
-            "key.nameoffset" : 12952,
-            "key.offset" : 12947,
+            "key.nameoffset" : 14299,
+            "key.offset" : 14294,
             "key.parsed_declaration" : "private enum Insertion",
-            "key.parsed_scope.end" : 434,
-            "key.parsed_scope.start" : 416,
+            "key.parsed_scope.end" : 472,
+            "key.parsed_scope.start" : 454,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
                 "key.name" : "Mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 12962,
-                "key.offset" : 12962,
+                "key.nameoffset" : 14309,
+                "key.offset" : 14309,
                 "key.parsed_declaration" : "private enum Insertioncase add(Mapped<\/Type>, Added<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> add<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Added<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 18,
                     "key.name" : "add(_:_:)",
                     "key.namelength" : 18,
-                    "key.nameoffset" : 12989,
-                    "key.offset" : 12989,
+                    "key.nameoffset" : 14336,
+                    "key.offset" : 14336,
                     "key.parsed_declaration" : "case add(Mapped, Added)",
-                    "key.parsed_scope.end" : 418,
-                    "key.parsed_scope.start" : 418,
+                    "key.parsed_scope.end" : 456,
+                    "key.parsed_scope.start" : 456,
                     "key.substructure" : [
 
                     ],
@@ -16982,22 +17263,22 @@
                 "key.length" : 24,
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 13016,
+                "key.offset" : 14363,
                 "key.substructure" : [
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case move(Mapped<\/Type>, Moved<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> move<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Moved<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 19,
                     "key.name" : "move(_:_:)",
                     "key.namelength" : 19,
-                    "key.nameoffset" : 13021,
-                    "key.offset" : 13021,
+                    "key.nameoffset" : 14368,
+                    "key.offset" : 14368,
                     "key.parsed_declaration" : "case move(Mapped, Moved)",
-                    "key.parsed_scope.end" : 419,
-                    "key.parsed_scope.start" : 419,
+                    "key.parsed_scope.end" : 457,
+                    "key.parsed_scope.start" : 457,
                     "key.substructure" : [
 
                     ],
@@ -17011,18 +17292,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var mapped: Mapped<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 154,
-                "key.bodyoffset" : 13079,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 14426,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 176,
                 "key.name" : "mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 13062,
-                "key.offset" : 13058,
+                "key.nameoffset" : 14409,
+                "key.offset" : 14405,
                 "key.parsed_declaration" : "var mapped : Mapped",
-                "key.parsed_scope.end" : 426,
-                "key.parsed_scope.start" : 421,
+                "key.parsed_scope.end" : 464,
+                "key.parsed_scope.start" : 459,
                 "key.typename" : "Mapped",
                 "key.typeusr" : "$sqd__D",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO6mappedqd__vp"
@@ -17031,18 +17312,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var newIndex: Int<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 166,
-                "key.bodyoffset" : 13272,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 14619,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 187,
                 "key.name" : "newIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 13256,
-                "key.offset" : 13252,
+                "key.nameoffset" : 14603,
+                "key.offset" : 14599,
                 "key.parsed_declaration" : "var newIndex : Int",
-                "key.parsed_scope.end" : 433,
-                "key.parsed_scope.start" : 428,
+                "key.parsed_scope.end" : 471,
+                "key.parsed_scope.start" : 466,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO8newIndexSivp"
@@ -17059,36 +17340,36 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 13455
+                "key.offset" : 14802
               }
             ],
             "key.bodylength" : 482,
-            "key.bodyoffset" : 13489,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.bodyoffset" : 14836,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Removal<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.enum>",
             "key.kind" : "source.lang.swift.decl.enum",
             "key.length" : 509,
             "key.name" : "Removal",
             "key.namelength" : 7,
-            "key.nameoffset" : 13468,
-            "key.offset" : 13463,
+            "key.nameoffset" : 14815,
+            "key.offset" : 14810,
             "key.parsed_declaration" : "private enum Removal",
-            "key.parsed_scope.end" : 454,
-            "key.parsed_scope.start" : 436,
+            "key.parsed_scope.end" : 492,
+            "key.parsed_scope.start" : 474,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
                 "key.name" : "Mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 13476,
-                "key.offset" : 13476,
+                "key.nameoffset" : 14823,
+                "key.offset" : 14823,
                 "key.parsed_declaration" : "private enum Removalcase remove(Mapped<\/Type>, Removed<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> remove<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Removed<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 23,
                     "key.name" : "remove(_:_:)",
                     "key.namelength" : 23,
-                    "key.nameoffset" : 13503,
-                    "key.offset" : 13503,
+                    "key.nameoffset" : 14850,
+                    "key.offset" : 14850,
                     "key.parsed_declaration" : "case remove(Mapped, Removed)",
-                    "key.parsed_scope.end" : 438,
-                    "key.parsed_scope.start" : 438,
+                    "key.parsed_scope.end" : 476,
+                    "key.parsed_scope.start" : 476,
                     "key.substructure" : [
 
                     ],
@@ -17128,22 +17409,22 @@
                 "key.length" : 24,
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 13535,
+                "key.offset" : 14882,
                 "key.substructure" : [
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case move(Mapped<\/Type>, Moved<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> move<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Moved<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 19,
                     "key.name" : "move(_:_:)",
                     "key.namelength" : 19,
-                    "key.nameoffset" : 13540,
-                    "key.offset" : 13540,
+                    "key.nameoffset" : 14887,
+                    "key.offset" : 14887,
                     "key.parsed_declaration" : "case move(Mapped, Moved)",
-                    "key.parsed_scope.end" : 439,
-                    "key.parsed_scope.start" : 439,
+                    "key.parsed_scope.end" : 477,
+                    "key.parsed_scope.start" : 477,
                     "key.substructure" : [
 
                     ],
@@ -17157,18 +17438,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var mapped: Mapped<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 157,
-                "key.bodyoffset" : 13598,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 14945,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 179,
                 "key.name" : "mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 13581,
-                "key.offset" : 13577,
+                "key.nameoffset" : 14928,
+                "key.offset" : 14924,
                 "key.parsed_declaration" : "var mapped : Mapped",
-                "key.parsed_scope.end" : 446,
-                "key.parsed_scope.start" : 441,
+                "key.parsed_scope.end" : 484,
+                "key.parsed_scope.start" : 479,
                 "key.typename" : "Mapped",
                 "key.typeusr" : "$sqd__D",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO6mappedqd__vp"
@@ -17177,18 +17458,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var oldIndex: Int<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 171,
-                "key.bodyoffset" : 13794,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 15141,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 192,
                 "key.name" : "oldIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 13778,
-                "key.offset" : 13774,
+                "key.nameoffset" : 15125,
+                "key.offset" : 15121,
                 "key.parsed_declaration" : "var oldIndex : Int",
-                "key.parsed_scope.end" : 453,
-                "key.parsed_scope.start" : 448,
+                "key.parsed_scope.end" : 491,
+                "key.parsed_scope.start" : 486,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV14SectionChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO8oldIndexSivp"
@@ -17206,99 +17487,99 @@
       {
         "key.annotated_decl" : "struct SectionedDiff<\/Type><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/Declaration>",
         "key.bodylength" : 2864,
-        "key.bodyoffset" : 14014,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+        "key.bodyoffset" : 15361,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SectionedDiff<\/ref.struct><Section, SectionIdentifier, Item, ItemIdentifier>.ItemChanges<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 2902,
         "key.name" : "SectionedDiff.ItemChanges",
         "key.namelength" : 25,
-        "key.nameoffset" : 13987,
-        "key.offset" : 13977,
+        "key.nameoffset" : 15334,
+        "key.offset" : 15324,
         "key.parsed_declaration" : "extension SectionedDiff.ItemChanges",
-        "key.parsed_scope.end" : 553,
-        "key.parsed_scope.start" : 458,
+        "key.parsed_scope.end" : 591,
+        "key.parsed_scope.start" : 496,
         "key.substructure" : [
           {
             "key.annotated_decl" : "func transform<Mapped>(old: [Mapped<\/Type>], removed: (Item<\/Type>, Mapped<\/Type>) -> (), added: (Item<\/Type>) -> Mapped<\/Type>, moved: (Item<\/Type>, Item<\/Type>, inout Mapped<\/Type>) -> (), updated: (Item<\/Type>, Item<\/Type>, inout Mapped<\/Type>) -> (), noChange: (Item<\/Type>, Item<\/Type>, inout Mapped<\/Type>) -> ()) -> [Mapped<\/Type>]<\/Declaration>",
             "key.bodylength" : 1491,
-            "key.bodyoffset" : 14322,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.bodyoffset" : 15669,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> transform<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>>(old<\/decl.var.parameter.argument_label>: [Mapped<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, removed<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, added<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Mapped<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, moved<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, updated<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, noChange<\/decl.var.parameter.argument_label>: (Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Item<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Mapped<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1795,
             "key.name" : "transform(old:removed:added:moved:updated:noChange:)",
             "key.namelength" : 280,
-            "key.nameoffset" : 14024,
-            "key.offset" : 14019,
+            "key.nameoffset" : 15371,
+            "key.offset" : 15366,
             "key.parsed_declaration" : "func transform(\n    old : [Mapped],\n    removed : (Item, Mapped) -> (),\n    added : (Item) -> Mapped,\n    moved : (Item, Item, inout Mapped) -> (),\n    updated : (Item, Item, inout Mapped) -> (),\n    noChange : (Item, Item, inout Mapped) -> ()\n    ) -> [Mapped]",
-            "key.parsed_scope.end" : 512,
-            "key.parsed_scope.start" : 460,
+            "key.parsed_scope.end" : 550,
+            "key.parsed_scope.start" : 498,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
                 "key.name" : "Mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 14034,
-                "key.offset" : 14034,
+                "key.nameoffset" : 15381,
+                "key.offset" : 15381,
                 "key.parsed_declaration" : "func transformlet removes: [Removal<\/Type><Mapped<\/Type>>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removes<\/decl.name>: [Removal<\/ref.enum><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 299,
                 "key.name" : "removes",
                 "key.namelength" : 7,
-                "key.nameoffset" : 14423,
-                "key.offset" : 14419,
+                "key.nameoffset" : 15770,
+                "key.offset" : 15766,
                 "key.parsed_declaration" : "let removes : [Removal] = (self.removed.map({\n    removed($0.oldValue, old[$0.oldIndex.item])\n    return .remove(old[$0.oldIndex.item], $0)\n}) + self.moved.map({\n    return .move(old[$0.oldIndex.item], $0)\n})).sorted(by: { $0.oldIndex > $1.oldIndex })",
-                "key.parsed_scope.end" : 471,
-                "key.parsed_scope.start" : 471,
+                "key.parsed_scope.end" : 509,
+                "key.parsed_scope.start" : 509,
                 "key.typename" : "[SectionedDiff.ItemChanges.Removal]",
                 "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9transform3old7removed5added5moved7updated8noChangeSayqd__GAM_yq0__qd__tXEqd__q0_XEyq0__q0_qd__ztXEyq0__q0_qd__ztXEyq0__q0_qd__ztXEtlF7removesL_SayAE7Removal33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGvp"
               },
               {
                 "key.annotated_decl" : "let inserts: [Insertion<\/Type><Mapped<\/Type>>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> inserts<\/decl.name>: [Insertion<\/ref.enum><Mapped<\/ref.generic_type_param>>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 349,
                 "key.name" : "inserts",
                 "key.namelength" : 7,
-                "key.nameoffset" : 14740,
-                "key.offset" : 14736,
+                "key.nameoffset" : 16087,
+                "key.offset" : 16083,
                 "key.parsed_declaration" : "let inserts : [Insertion] = (self.added.map({\n    let value = added($0.newValue)\n    return .add(value, $0)\n}) + self.moved.map({\n    var value = old[$0.oldIndex.item]\n    moved($0.oldValue, $0.newValue, &value)\n    return .move(value, $0)\n})).sorted(by: { $0.newIndex < $1.newIndex })",
-                "key.parsed_scope.end" : 478,
-                "key.parsed_scope.start" : 478,
+                "key.parsed_scope.end" : 516,
+                "key.parsed_scope.start" : 516,
                 "key.typename" : "[SectionedDiff.ItemChanges.Insertion]",
                 "key.typeusr" : "$sSay10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9transform3old7removed5added5moved7updated8noChangeSayqd__GAM_yq0__qd__tXEqd__q0_XEyq0__q0_qd__ztXEyq0__q0_qd__ztXEyq0__q0_qd__ztXEtlF7insertsL_SayAE9Insertion33_459A16665E334F63AE247A06F35B0E51LLOyxq_q0_q1___qd__GGvp"
               },
               {
                 "key.annotated_decl" : "var new: [Mapped]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: [Mapped]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 13,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 15107,
-                "key.offset" : 15103,
+                "key.nameoffset" : 16454,
+                "key.offset" : 16450,
                 "key.parsed_declaration" : "var new = old",
-                "key.parsed_scope.end" : 487,
-                "key.parsed_scope.start" : 487,
+                "key.parsed_scope.end" : 525,
+                "key.parsed_scope.start" : 525,
                 "key.typename" : "[Mapped]",
                 "key.typeusr" : "$sSayqd__GD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9transform3old7removed5added5moved7updated8noChangeSayqd__GAM_yq0__qd__tXEqd__q0_XEyq0__q0_qd__ztXEyq0__q0_qd__ztXEyq0__q0_qd__ztXEtlF3newL_AMvp"
@@ -17315,36 +17596,36 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 15824
+                "key.offset" : 17171
               }
             ],
             "key.bodylength" : 479,
-            "key.bodyoffset" : 15860,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.bodyoffset" : 17207,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Insertion<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.enum>",
             "key.kind" : "source.lang.swift.decl.enum",
             "key.length" : 508,
             "key.name" : "Insertion",
             "key.namelength" : 9,
-            "key.nameoffset" : 15837,
-            "key.offset" : 15832,
+            "key.nameoffset" : 17184,
+            "key.offset" : 17179,
             "key.parsed_declaration" : "private enum Insertion",
-            "key.parsed_scope.end" : 532,
-            "key.parsed_scope.start" : 514,
+            "key.parsed_scope.end" : 570,
+            "key.parsed_scope.start" : 552,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
                 "key.name" : "Mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 15847,
-                "key.offset" : 15847,
+                "key.nameoffset" : 17194,
+                "key.offset" : 17194,
                 "key.parsed_declaration" : "private enum Insertioncase add(Mapped<\/Type>, Added<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> add<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Added<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 18,
                     "key.name" : "add(_:_:)",
                     "key.namelength" : 18,
-                    "key.nameoffset" : 15874,
-                    "key.offset" : 15874,
+                    "key.nameoffset" : 17221,
+                    "key.offset" : 17221,
                     "key.parsed_declaration" : "case add(Mapped, Added)",
-                    "key.parsed_scope.end" : 516,
-                    "key.parsed_scope.start" : 516,
+                    "key.parsed_scope.end" : 554,
+                    "key.parsed_scope.start" : 554,
                     "key.substructure" : [
 
                     ],
@@ -17384,22 +17665,22 @@
                 "key.length" : 24,
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 15901,
+                "key.offset" : 17248,
                 "key.substructure" : [
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case move(Mapped<\/Type>, Moved<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> move<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Moved<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 19,
                     "key.name" : "move(_:_:)",
                     "key.namelength" : 19,
-                    "key.nameoffset" : 15906,
-                    "key.offset" : 15906,
+                    "key.nameoffset" : 17253,
+                    "key.offset" : 17253,
                     "key.parsed_declaration" : "case move(Mapped, Moved)",
-                    "key.parsed_scope.end" : 517,
-                    "key.parsed_scope.start" : 517,
+                    "key.parsed_scope.end" : 555,
+                    "key.parsed_scope.start" : 555,
                     "key.substructure" : [
 
                     ],
@@ -17413,18 +17694,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var mapped: Mapped<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 154,
-                "key.bodyoffset" : 15964,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 17311,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 176,
                 "key.name" : "mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 15947,
-                "key.offset" : 15943,
+                "key.nameoffset" : 17294,
+                "key.offset" : 17290,
                 "key.parsed_declaration" : "var mapped : Mapped",
-                "key.parsed_scope.end" : 524,
-                "key.parsed_scope.start" : 519,
+                "key.parsed_scope.end" : 562,
+                "key.parsed_scope.start" : 557,
                 "key.typename" : "Mapped",
                 "key.typeusr" : "$sqd__D",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO6mappedqd__vp"
@@ -17433,18 +17714,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var newIndex: Int<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 176,
-                "key.bodyoffset" : 16157,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 17504,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 197,
                 "key.name" : "newIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 16141,
-                "key.offset" : 16137,
+                "key.nameoffset" : 17488,
+                "key.offset" : 17484,
                 "key.parsed_declaration" : "var newIndex : Int",
-                "key.parsed_scope.end" : 531,
-                "key.parsed_scope.start" : 526,
+                "key.parsed_scope.end" : 569,
+                "key.parsed_scope.start" : 564,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV9Insertion33_459A16665E334F63AE247A06F35B0E51LLO8newIndexSivp"
@@ -17461,36 +17742,36 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 16350
+                "key.offset" : 17697
               }
             ],
             "key.bodylength" : 492,
-            "key.bodyoffset" : 16384,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+            "key.bodyoffset" : 17731,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Removal<\/decl.name><Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.enum>",
             "key.kind" : "source.lang.swift.decl.enum",
             "key.length" : 519,
             "key.name" : "Removal",
             "key.namelength" : 7,
-            "key.nameoffset" : 16363,
-            "key.offset" : 16358,
+            "key.nameoffset" : 17710,
+            "key.offset" : 17705,
             "key.parsed_declaration" : "private enum Removal",
-            "key.parsed_scope.end" : 552,
-            "key.parsed_scope.start" : 534,
+            "key.parsed_scope.end" : 590,
+            "key.parsed_scope.start" : 572,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Mapped<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "Mapped<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
                 "key.name" : "Mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 16371,
-                "key.offset" : 16371,
+                "key.nameoffset" : 17718,
+                "key.offset" : 17718,
                 "key.parsed_declaration" : "private enum Removalcase remove(Mapped<\/Type>, Removed<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> remove<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Removed<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 23,
                     "key.name" : "remove(_:_:)",
                     "key.namelength" : 23,
-                    "key.nameoffset" : 16398,
-                    "key.offset" : 16398,
+                    "key.nameoffset" : 17745,
+                    "key.offset" : 17745,
                     "key.parsed_declaration" : "case remove(Mapped, Removed)",
-                    "key.parsed_scope.end" : 536,
-                    "key.parsed_scope.start" : 536,
+                    "key.parsed_scope.end" : 574,
+                    "key.parsed_scope.start" : 574,
                     "key.substructure" : [
 
                     ],
@@ -17530,22 +17811,22 @@
                 "key.length" : 24,
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 16430,
+                "key.offset" : 17777,
                 "key.substructure" : [
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case move(Mapped<\/Type>, Moved<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> move<\/decl.name>(Mapped<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, Moved<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 19,
                     "key.name" : "move(_:_:)",
                     "key.namelength" : 19,
-                    "key.nameoffset" : 16435,
-                    "key.offset" : 16435,
+                    "key.nameoffset" : 17782,
+                    "key.offset" : 17782,
                     "key.parsed_declaration" : "case move(Mapped, Moved)",
-                    "key.parsed_scope.end" : 537,
-                    "key.parsed_scope.start" : 537,
+                    "key.parsed_scope.end" : 575,
+                    "key.parsed_scope.start" : 575,
                     "key.substructure" : [
 
                     ],
@@ -17559,18 +17840,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var mapped: Mapped<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 157,
-                "key.bodyoffset" : 16493,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 17840,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> mapped<\/decl.name>: Mapped<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 179,
                 "key.name" : "mapped",
                 "key.namelength" : 6,
-                "key.nameoffset" : 16476,
-                "key.offset" : 16472,
+                "key.nameoffset" : 17823,
+                "key.offset" : 17819,
                 "key.parsed_declaration" : "var mapped : Mapped",
-                "key.parsed_scope.end" : 544,
-                "key.parsed_scope.start" : 539,
+                "key.parsed_scope.end" : 582,
+                "key.parsed_scope.start" : 577,
                 "key.typename" : "Mapped",
                 "key.typeusr" : "$sqd__D",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO6mappedqd__vp"
@@ -17579,18 +17860,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var oldIndex: Int<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 181,
-                "key.bodyoffset" : 16689,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
+                "key.bodyoffset" : 18036,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Diff\/SectionedDiff.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 202,
                 "key.name" : "oldIndex",
                 "key.namelength" : 8,
-                "key.nameoffset" : 16673,
-                "key.offset" : 16669,
+                "key.nameoffset" : 18020,
+                "key.offset" : 18016,
                 "key.parsed_declaration" : "var oldIndex : Int",
-                "key.parsed_scope.end" : 551,
-                "key.parsed_scope.start" : 546,
+                "key.parsed_scope.end" : 589,
+                "key.parsed_scope.start" : 584,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI13SectionedDiffV11ItemChangesV7Removal33_459A16665E334F63AE247A06F35B0E51LLO8oldIndexSivp"
@@ -17608,7 +17889,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 5247,
     "key.offset" : 0,
@@ -17632,7 +17913,7 @@
             "key.offset" : 183
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> HeaderFooterContentView<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UIView<\/ref.class> where<\/syntaxtype.keyword> Content : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -17658,7 +17939,7 @@
                 "key.offset" : 160
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -17689,7 +17970,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "typealias HeaderFooterContentView<\/Type><Content>.OnTap = () -> ()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> HeaderFooterContentView<\/ref.class><Content>.OnTap<\/decl.name> = () -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 26,
@@ -17709,7 +17990,7 @@
             "key.annotated_decl" : "var onTap: OnTap<\/Type>? { get set }<\/Declaration>",
             "key.bodylength" : 48,
             "key.bodyoffset" : 301,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> onTap<\/decl.name>: OnTap<\/ref.typealias>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 75,
@@ -17728,7 +18009,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let content: Content<\/Type>.ContentView<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param>.ContentView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -17746,7 +18027,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let background: Content<\/Type>.BackgroundView<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> background<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
@@ -17764,7 +18045,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let pressedBackground: Content<\/Type>.PressedBackgroundView<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> pressedBackground<\/decl.name>: Content<\/ref.generic_type_param>.PressedBackgroundView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 53,
@@ -17789,7 +18070,7 @@
                 "key.offset" : 505
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> pressRecognizer<\/decl.name>: PressGestureRecognizer<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 44,
@@ -17824,7 +18105,7 @@
             ],
             "key.bodylength" : 818,
             "key.bodyoffset" : 644,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 840,
@@ -17848,7 +18129,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let bounds: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 52,
@@ -17920,7 +18201,7 @@
             ],
             "key.bodylength" : 45,
             "key.bodyoffset" : 1654,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sizeThatFits<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 91,
@@ -17955,7 +18236,7 @@
             ],
             "key.bodylength" : 62,
             "key.bodyoffset" : 1781,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 125,
@@ -17995,7 +18276,7 @@
             ],
             "key.bodylength" : 216,
             "key.bodyoffset" : 2073,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withHorizontalFittingPriority<\/decl.var.parameter.argument_label> horizontalFittingPriority<\/decl.var.parameter.name>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, verticalFittingPriority<\/decl.var.parameter.argument_label>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 427,
@@ -18035,7 +18316,7 @@
             ],
             "key.bodylength" : 181,
             "key.bodyoffset" : 2332,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 205,
@@ -18078,7 +18359,7 @@
             ],
             "key.bodylength" : 487,
             "key.bodyoffset" : 2606,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateIsTappable<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 517,
@@ -18113,7 +18394,7 @@
             ],
             "key.bodylength" : 596,
             "key.bodyoffset" : 3144,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> pressStateChanged<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 623,
@@ -18127,7 +18408,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let state: UIGestureRecognizer<\/Type>.State<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> state<\/decl.name>: UIGestureRecognizer<\/ref.class>.State<\/ref.enum><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 38,
@@ -18176,7 +18457,7 @@
             "key.offset" : 3795
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
         "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PressGestureRecognizer<\/decl.name> : UILongPressGestureRecognizer<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -18196,7 +18477,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var allowableMovementAfterBegin: CGFloat<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> allowableMovementAfterBegin<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 47,
@@ -18222,7 +18503,7 @@
                 "key.offset" : 3892
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> initialPoint<\/decl.name>: CGPoint<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -18250,7 +18531,7 @@
             ],
             "key.bodylength" : 68,
             "key.bodyoffset" : 3966,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> reset<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 83,
@@ -18285,7 +18566,7 @@
             ],
             "key.bodylength" : 120,
             "key.bodyoffset" : 4119,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> touchesBegan<\/decl.name>(_<\/decl.var.parameter.argument_label> touches<\/decl.var.parameter.name>: Set<\/ref.struct><UITouch<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 186,
@@ -18320,7 +18601,7 @@
             ],
             "key.bodylength" : 396,
             "key.bodyoffset" : 4316,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> canPrevent<\/decl.name>(_<\/decl.var.parameter.argument_label> gesture<\/decl.var.parameter.name>: UIGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 454,
@@ -18355,7 +18636,7 @@
             ],
             "key.bodylength" : 446,
             "key.bodyoffset" : 4797,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HeaderFooterContentView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> touchesMoved<\/decl.name>(_<\/decl.var.parameter.argument_label> touches<\/decl.var.parameter.name>: Set<\/ref.struct><UITouch<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 512,
@@ -18386,7 +18667,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HorizontalPanGestureRecognizer.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HorizontalPanGestureRecognizer.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 542,
     "key.offset" : 0,
@@ -18403,7 +18684,7 @@
             "key.offset" : 186
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HorizontalPanGestureRecognizer.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HorizontalPanGestureRecognizer.swift",
         "key.fully_annotated_decl" : "class<\/syntaxtype.keyword> HorizontalPanGestureRecognizer<\/decl.name> : UIPanGestureRecognizer<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -18432,7 +18713,7 @@
             ],
             "key.bodylength" : 248,
             "key.bodyoffset" : 290,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/HorizontalPanGestureRecognizer.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/HorizontalPanGestureRecognizer.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> touchesMoved<\/decl.name>(_<\/decl.var.parameter.argument_label> touches<\/decl.var.parameter.name>: Set<\/ref.struct><UITouch<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> event<\/decl.var.parameter.name>: UIEvent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 314,
@@ -18463,14 +18744,14 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 8266,
+    "key.length" : 8367,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.annotated_decl" : "final class ItemCell<Content> : UICollectionViewCell<\/Type>, AnyItemCell where Content : ItemContent<\/Type><\/Declaration>",
-        "key.bodylength" : 7223,
+        "key.bodylength" : 7324,
         "key.bodyoffset" : 142,
         "key.doc.column" : 13,
         "key.doc.declaration" : "final class ItemCell : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent",
@@ -18479,21 +18760,21 @@
             "Para" : "Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
-        "key.doc.full_as_xml" : "ItemCell<\/Name>s:10ListableUI8ItemCellC<\/USR>final class ItemCell<Content> : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent<\/Declaration>An internal cell type used to render items in the list.<\/Para><\/Abstract>Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+        "key.doc.full_as_xml" : "ItemCell<\/Name>s:10ListableUI8ItemCellC<\/USR>final class ItemCell<Content> : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent<\/Declaration>An internal cell type used to render items in the list.<\/Para><\/Abstract>Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 24,
         "key.doc.name" : "ItemCell",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemCell<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UICollectionViewCell<\/ref.class>, AnyItemCell where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 7244,
+        "key.length" : 7345,
         "key.name" : "ItemCell",
         "key.namelength" : 8,
         "key.nameoffset" : 132,
         "key.offset" : 122,
         "key.parsed_declaration" : "extension ItemCell",
-        "key.parsed_scope.end" : 240,
+        "key.parsed_scope.end" : 243,
         "key.parsed_scope.start" : 11,
         "key.substructure" : [
           {
@@ -18505,7 +18786,7 @@
                 "key.offset" : 148
               }
             ],
-            "key.bodylength" : 6995,
+            "key.bodylength" : 7045,
             "key.bodyoffset" : 191,
             "key.elements" : [
               {
@@ -18514,7 +18795,7 @@
                 "key.offset" : 183
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ContentContainerView<\/decl.name> : UIView<\/ref.class><\/decl.class>",
             "key.inheritedtypes" : [
               {
@@ -18522,19 +18803,19 @@
               }
             ],
             "key.kind" : "source.lang.swift.decl.class",
-            "key.length" : 7033,
+            "key.length" : 7083,
             "key.name" : "ContentContainerView",
             "key.namelength" : 20,
             "key.nameoffset" : 160,
             "key.offset" : 154,
             "key.parsed_declaration" : "final class ContentContainerView : UIView",
-            "key.parsed_scope.end" : 233,
+            "key.parsed_scope.end" : 235,
             "key.parsed_scope.start" : 13,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let contentView: Content<\/Type>.ContentView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentView<\/decl.name>: Content<\/ref.generic_type_param>.ContentView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 37,
@@ -18556,17 +18837,17 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 264
+                    "key.offset" : 248
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> swipeConfiguration<\/decl.name>: SwipeConfiguration<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 43,
                 "key.name" : "swipeConfiguration",
                 "key.namelength" : 18,
-                "key.nameoffset" : 276,
-                "key.offset" : 272,
+                "key.nameoffset" : 260,
+                "key.offset" : 256,
                 "key.parsed_declaration" : "private var swipeConfiguration: SwipeConfiguration?",
                 "key.parsed_scope.end" : 17,
                 "key.parsed_scope.start" : 17,
@@ -18582,19 +18863,19 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 333
+                    "key.offset" : 309
                   }
                 ],
                 "key.bodylength" : 181,
-                "key.bodyoffset" : 385,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodyoffset" : 361,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> swipeState<\/decl.name>: SwipeActionState<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 226,
                 "key.name" : "swipeState",
                 "key.namelength" : 10,
-                "key.nameoffset" : 345,
-                "key.offset" : 341,
+                "key.nameoffset" : 321,
+                "key.offset" : 317,
                 "key.parsed_declaration" : "private var swipeState: SwipeActionState = .closed",
                 "key.parsed_scope.end" : 25,
                 "key.parsed_scope.start" : 19,
@@ -18610,19 +18891,19 @@
                   {
                     "key.attribute" : "source.decl.attribute.override",
                     "key.length" : 8,
-                    "key.offset" : 577
+                    "key.offset" : 553
                   }
                 ],
-                "key.bodylength" : 252,
-                "key.bodyoffset" : 608,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodylength" : 240,
+                "key.bodyoffset" : 584,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 275,
+                "key.length" : 263,
                 "key.name" : "init(frame:)",
                 "key.namelength" : 20,
-                "key.nameoffset" : 586,
-                "key.offset" : 586,
+                "key.nameoffset" : 562,
+                "key.offset" : 562,
                 "key.overrides" : [
                   {
                     "key.usr" : "c:objc(cs)UIView(im)initWithFrame:"
@@ -18639,14 +18920,14 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let bounds: CGRect<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 52,
                     "key.name" : "bounds",
                     "key.namelength" : 6,
-                    "key.nameoffset" : 625,
-                    "key.offset" : 621,
+                    "key.nameoffset" : 601,
+                    "key.offset" : 597,
                     "key.parsed_declaration" : "let bounds = CGRect(origin: .zero, size: frame.size)",
                     "key.parsed_scope.end" : 28,
                     "key.parsed_scope.start" : 28,
@@ -18670,23 +18951,23 @@
                   {
                     "key.attribute" : "source.decl.attribute.required",
                     "key.length" : 8,
-                    "key.offset" : 906
+                    "key.offset" : 870
                   },
                   {
                     "key.attribute" : "source.decl.attribute.available",
                     "key.length" : 26,
-                    "key.offset" : 871
+                    "key.offset" : 835
                   }
                 ],
                 "key.bodylength" : 14,
-                "key.bodyoffset" : 938,
+                "key.bodyoffset" : 902,
                 "key.internal_diagnostic" : "Unavailable in the current compilation context.",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 38,
                 "key.name" : "init(coder:)",
                 "key.namelength" : 21,
-                "key.nameoffset" : 915,
-                "key.offset" : 915,
+                "key.nameoffset" : 879,
+                "key.offset" : 879,
                 "key.substructure" : [
 
                 ]
@@ -18698,19 +18979,19 @@
                   {
                     "key.attribute" : "source.decl.attribute.override",
                     "key.length" : 8,
-                    "key.offset" : 963
+                    "key.offset" : 927
                   }
                 ],
                 "key.bodylength" : 230,
-                "key.bodyoffset" : 995,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodyoffset" : 959,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 254,
                 "key.name" : "layoutSubviews()",
                 "key.namelength" : 16,
-                "key.nameoffset" : 977,
-                "key.offset" : 972,
+                "key.nameoffset" : 941,
+                "key.offset" : 936,
                 "key.overrides" : [
                   {
                     "key.usr" : "c:objc(cs)UIView(im)layoutSubviews"
@@ -18733,33 +19014,33 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 1236
+                    "key.offset" : 1200
                   }
                 ],
                 "key.bodylength" : 905,
-                "key.bodyoffset" : 1304,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodyoffset" : 1268,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateFrames<\/decl.name>(using<\/decl.var.parameter.argument_label> configuration<\/decl.var.parameter.name>: SwipeConfiguration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 966,
                 "key.name" : "updateFrames(using:)",
                 "key.namelength" : 53,
-                "key.nameoffset" : 1249,
-                "key.offset" : 1244,
+                "key.nameoffset" : 1213,
+                "key.offset" : 1208,
                 "key.parsed_declaration" : "private func updateFrames(using configuration: SwipeConfiguration)",
                 "key.parsed_scope.end" : 84,
                 "key.parsed_scope.start" : 50,
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let xOriginOffset: CGFloat<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> xOriginOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 26,
                     "key.name" : "xOriginOffset",
                     "key.namelength" : 13,
-                    "key.nameoffset" : 1322,
-                    "key.offset" : 1318,
+                    "key.nameoffset" : 1286,
+                    "key.offset" : 1282,
                     "key.parsed_declaration" : "let xOriginOffset: CGFloat",
                     "key.parsed_scope.end" : 52,
                     "key.parsed_scope.start" : 52,
@@ -18778,7 +19059,7 @@
                 "key.name" : "MARK: - Swipe Registration",
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 2223
+                "key.offset" : 2187
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -18787,19 +19068,19 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 2259
+                    "key.offset" : 2223
                   }
                 ],
                 "key.bodylength" : 359,
-                "key.bodyoffset" : 2298,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodyoffset" : 2262,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> deregisterSwipeIfNeeded<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 392,
                 "key.name" : "deregisterSwipeIfNeeded()",
                 "key.namelength" : 25,
-                "key.nameoffset" : 2271,
-                "key.offset" : 2266,
+                "key.nameoffset" : 2235,
+                "key.offset" : 2230,
                 "key.parsed_declaration" : "public func deregisterSwipeIfNeeded()",
                 "key.parsed_scope.end" : 99,
                 "key.parsed_scope.start" : 88,
@@ -18817,21 +19098,21 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 2668
+                    "key.offset" : 2632
                   }
                 ],
-                "key.bodylength" : 994,
-                "key.bodyoffset" : 2767,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodylength" : 1090,
+                "key.bodyoffset" : 2731,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> registerSwipeActionsIfNeeded<\/decl.name>(actions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 1087,
+                "key.length" : 1183,
                 "key.name" : "registerSwipeActionsIfNeeded(actions:reason:)",
                 "key.namelength" : 85,
-                "key.nameoffset" : 2680,
-                "key.offset" : 2675,
+                "key.nameoffset" : 2644,
+                "key.offset" : 2639,
                 "key.parsed_declaration" : "public func registerSwipeActionsIfNeeded(actions: SwipeActionsConfiguration, reason: ApplyReason)",
-                "key.parsed_scope.end" : 126,
+                "key.parsed_scope.end" : 127,
                 "key.parsed_scope.start" : 101,
                 "key.substructure" : [
 
@@ -18847,25 +19128,25 @@
                   {
                     "key.attribute" : "source.decl.attribute.weak",
                     "key.length" : 4,
-                    "key.offset" : 3788
+                    "key.offset" : 3840
                   },
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 3780
+                    "key.offset" : 3832
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 30,
                 "key.name" : "listView",
                 "key.namelength" : 8,
-                "key.nameoffset" : 3797,
-                "key.offset" : 3793,
+                "key.nameoffset" : 3849,
+                "key.offset" : 3845,
                 "key.parsed_declaration" : "private weak var listView : ListView? = nil",
-                "key.parsed_scope.end" : 128,
-                "key.parsed_scope.start" : 128,
+                "key.parsed_scope.end" : 129,
+                "key.parsed_scope.start" : 129,
                 "key.setter_accessibility" : "source.lang.swift.accessibility.private",
                 "key.typename" : "ListView?",
                 "key.typeusr" : "$s10ListableUI8ListViewCSgD",
@@ -18878,92 +19159,92 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 3839
+                    "key.offset" : 3891
                   },
                   {
                     "key.attribute" : "source.decl.attribute.objc",
                     "key.length" : 5,
-                    "key.offset" : 3833
+                    "key.offset" : 3885
                   }
                 ],
-                "key.bodylength" : 2031,
-                "key.bodyoffset" : 3895,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodylength" : 2073,
+                "key.bodyoffset" : 3947,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> handlePan<\/decl.name>(sender<\/decl.var.parameter.argument_label>: UIPanGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 2080,
+                "key.length" : 2122,
                 "key.name" : "handlePan(sender:)",
                 "key.namelength" : 41,
-                "key.nameoffset" : 3852,
-                "key.offset" : 3847,
+                "key.nameoffset" : 3904,
+                "key.offset" : 3899,
                 "key.parsed_declaration" : "@objc private func handlePan(sender: UIPanGestureRecognizer)",
-                "key.parsed_scope.end" : 194,
-                "key.parsed_scope.start" : 130,
+                "key.parsed_scope.end" : 196,
+                "key.parsed_scope.start" : 131,
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let offsetMultiplier: Double<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> offsetMultiplier<\/decl.name>: Double<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 69,
                     "key.name" : "offsetMultiplier",
                     "key.namelength" : 16,
-                    "key.nameoffset" : 4139,
-                    "key.offset" : 4135,
+                    "key.nameoffset" : 4167,
+                    "key.offset" : 4163,
                     "key.parsed_declaration" : "let offsetMultiplier = configuration.numberOfActions == 1 ? 0.5 : 0.7",
-                    "key.parsed_scope.end" : 138,
-                    "key.parsed_scope.start" : 138,
+                    "key.parsed_scope.end" : 139,
+                    "key.parsed_scope.start" : 139,
                     "key.typename" : "Double",
                     "key.typeusr" : "$sSdD",
                     "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF16offsetMultiplierL_Sdvp"
                   },
                   {
                     "key.annotated_decl" : "let performActionOffset: CGFloat<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> performActionOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 65,
                     "key.name" : "performActionOffset",
                     "key.namelength" : 19,
-                    "key.nameoffset" : 4221,
-                    "key.offset" : 4217,
+                    "key.nameoffset" : 4249,
+                    "key.offset" : 4245,
                     "key.parsed_declaration" : "let performActionOffset = frame.width * CGFloat(offsetMultiplier)",
-                    "key.parsed_scope.end" : 139,
-                    "key.parsed_scope.start" : 139,
+                    "key.parsed_scope.end" : 140,
+                    "key.parsed_scope.start" : 140,
                     "key.typename" : "CGFloat",
                     "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
                     "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF19performActionOffsetL_12CoreGraphics7CGFloatVvp"
                   },
                   {
                     "key.annotated_decl" : "let currentSwipeOffset: CGFloat<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> currentSwipeOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 52,
                     "key.name" : "currentSwipeOffset",
                     "key.namelength" : 18,
-                    "key.nameoffset" : 4299,
-                    "key.offset" : 4295,
+                    "key.nameoffset" : 4327,
+                    "key.offset" : 4323,
                     "key.parsed_declaration" : "let currentSwipeOffset = -contentView.frame.origin.x",
-                    "key.parsed_scope.end" : 140,
-                    "key.parsed_scope.start" : 140,
+                    "key.parsed_scope.end" : 141,
+                    "key.parsed_scope.start" : 141,
                     "key.typename" : "CGFloat",
                     "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
                     "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF18currentSwipeOffsetL_12CoreGraphics7CGFloatVvp"
                   },
                   {
                     "key.annotated_decl" : "let willPerformAction: Bool<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> willPerformAction<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 64,
+                    "key.length" : 130,
                     "key.name" : "willPerformAction",
                     "key.namelength" : 17,
-                    "key.nameoffset" : 4364,
-                    "key.offset" : 4360,
-                    "key.parsed_declaration" : "let willPerformAction = currentSwipeOffset > performActionOffset",
-                    "key.parsed_scope.end" : 141,
-                    "key.parsed_scope.start" : 141,
+                    "key.nameoffset" : 4392,
+                    "key.offset" : 4388,
+                    "key.parsed_declaration" : "let willPerformAction = currentSwipeOffset > performActionOffset\n    && configuration.performsFirstActionWithFullSwipe",
+                    "key.parsed_scope.end" : 142,
+                    "key.parsed_scope.start" : 142,
                     "key.typename" : "Bool",
                     "key.typeusr" : "$sSbD",
                     "key.usr" : "s:10ListableUI8ItemCellC20ContentContainerViewC9handlePan33_A7F567565BF168C7DEE5B4CF43486FBDLL6senderySo22UIPanGestureRecognizerC_tF17willPerformActionL_Sbvp"
@@ -18980,22 +19261,22 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 5937
+                    "key.offset" : 6031
                   }
                 ],
-                "key.bodylength" : 209,
-                "key.bodyoffset" : 5989,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodylength" : 197,
+                "key.bodyoffset" : 6083,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> didPerformAction<\/decl.name>(expandActions<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 254,
+                "key.length" : 242,
                 "key.name" : "didPerformAction(expandActions:)",
                 "key.namelength" : 37,
-                "key.nameoffset" : 5950,
-                "key.offset" : 5945,
+                "key.nameoffset" : 6044,
+                "key.offset" : 6039,
                 "key.parsed_declaration" : "private func didPerformAction(expandActions: Bool)",
-                "key.parsed_scope.end" : 203,
-                "key.parsed_scope.start" : 196,
+                "key.parsed_scope.end" : 205,
+                "key.parsed_scope.start" : 198,
                 "key.substructure" : [
 
                 ],
@@ -19007,18 +19288,18 @@
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "func performAnimatedClose()<\/Declaration>",
                 "key.bodylength" : 62,
-                "key.bodyoffset" : 6246,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodyoffset" : 6320,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> performAnimatedClose<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 92,
                 "key.name" : "performAnimatedClose()",
                 "key.namelength" : 22,
-                "key.nameoffset" : 6222,
-                "key.offset" : 6217,
+                "key.nameoffset" : 6296,
+                "key.offset" : 6291,
                 "key.parsed_declaration" : "func performAnimatedClose()",
-                "key.parsed_scope.end" : 207,
-                "key.parsed_scope.start" : 205,
+                "key.parsed_scope.end" : 209,
+                "key.parsed_scope.start" : 207,
                 "key.substructure" : [
 
                 ],
@@ -19033,22 +19314,22 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 6319
+                    "key.offset" : 6393
                   }
                 ],
-                "key.bodylength" : 320,
-                "key.bodyoffset" : 6386,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodylength" : 296,
+                "key.bodyoffset" : 6460,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(state<\/decl.var.parameter.argument_label>: SwipeActionState<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 380,
+                "key.length" : 356,
                 "key.name" : "set(state:animated:)",
                 "key.namelength" : 52,
-                "key.nameoffset" : 6332,
-                "key.offset" : 6327,
+                "key.nameoffset" : 6406,
+                "key.offset" : 6401,
                 "key.parsed_declaration" : "private func set(state: SwipeActionState, animated: Bool = false)",
-                "key.parsed_scope.end" : 221,
-                "key.parsed_scope.start" : 209,
+                "key.parsed_scope.end" : 223,
+                "key.parsed_scope.start" : 211,
                 "key.substructure" : [
 
                 ],
@@ -19063,27 +19344,27 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 6723
+                    "key.offset" : 6773
                   },
                   {
                     "key.attribute" : "source.decl.attribute.objc",
                     "key.length" : 5,
-                    "key.offset" : 6717
+                    "key.offset" : 6767
                   }
                 ],
                 "key.bodylength" : 90,
-                "key.bodyoffset" : 6808,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodyoffset" : 6858,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performAccessibilityAction<\/decl.name>(_<\/decl.var.parameter.argument_label> action<\/decl.var.parameter.name>: AccessibilitySwipeAction<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 168,
                 "key.name" : "performAccessibilityAction(_:)",
                 "key.namelength" : 62,
-                "key.nameoffset" : 6736,
-                "key.offset" : 6731,
+                "key.nameoffset" : 6786,
+                "key.offset" : 6781,
                 "key.parsed_declaration" : "@objc private func performAccessibilityAction(_ action: AccessibilitySwipeAction) -> Bool",
-                "key.parsed_scope.end" : 226,
-                "key.parsed_scope.start" : 223,
+                "key.parsed_scope.end" : 228,
+                "key.parsed_scope.start" : 225,
                 "key.substructure" : [
 
                 ],
@@ -19098,22 +19379,22 @@
                   {
                     "key.attribute" : "source.decl.attribute.private",
                     "key.length" : 7,
-                    "key.offset" : 6909
+                    "key.offset" : 6959
                   }
                 ],
                 "key.bodylength" : 199,
-                "key.bodyoffset" : 6981,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.bodyoffset" : 7031,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> configureAccessibilityActions<\/decl.name>(for<\/decl.var.parameter.argument_label> actions<\/decl.var.parameter.name>: [SwipeAction<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 264,
                 "key.name" : "configureAccessibilityActions(for:)",
                 "key.namelength" : 57,
-                "key.nameoffset" : 6922,
-                "key.offset" : 6917,
+                "key.nameoffset" : 6972,
+                "key.offset" : 6967,
                 "key.parsed_declaration" : "private func configureAccessibilityActions(for actions: [SwipeAction])",
-                "key.parsed_scope.end" : 232,
-                "key.parsed_scope.start" : 228,
+                "key.parsed_scope.end" : 234,
+                "key.parsed_scope.start" : 230,
                 "key.substructure" : [
 
                 ],
@@ -19128,34 +19409,34 @@
           },
           {
             "key.annotated_decl" : "struct SwipeConfiguration<\/Declaration>",
-            "key.bodylength" : 143,
-            "key.bodyoffset" : 7220,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+            "key.bodylength" : 194,
+            "key.bodyoffset" : 7270,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SwipeConfiguration<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 171,
+            "key.length" : 222,
             "key.name" : "SwipeConfiguration",
             "key.namelength" : 18,
-            "key.nameoffset" : 7200,
-            "key.offset" : 7193,
+            "key.nameoffset" : 7250,
+            "key.offset" : 7243,
             "key.parsed_declaration" : "struct SwipeConfiguration",
-            "key.parsed_scope.end" : 239,
-            "key.parsed_scope.start" : 235,
+            "key.parsed_scope.end" : 242,
+            "key.parsed_scope.start" : 237,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let panGestureRecognizer: UIPanGestureRecognizer<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> panGestureRecognizer<\/decl.name>: UIPanGestureRecognizer<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 48,
                 "key.name" : "panGestureRecognizer",
                 "key.namelength" : 20,
-                "key.nameoffset" : 7233,
-                "key.offset" : 7229,
+                "key.nameoffset" : 7283,
+                "key.offset" : 7279,
                 "key.parsed_declaration" : "let panGestureRecognizer: UIPanGestureRecognizer",
-                "key.parsed_scope.end" : 236,
-                "key.parsed_scope.start" : 236,
+                "key.parsed_scope.end" : 238,
+                "key.parsed_scope.start" : 238,
                 "key.typename" : "UIPanGestureRecognizer",
                 "key.typeusr" : "$sSo22UIPanGestureRecognizerCD",
                 "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfigurationV20panGestureRecognizerSo05UIPanhI0Cvp"
@@ -19163,17 +19444,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let swipeView: Content<\/Type>.SwipeActionsView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> swipeView<\/decl.name>: Content<\/ref.generic_type_param>.SwipeActionsView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 39,
                 "key.name" : "swipeView",
                 "key.namelength" : 9,
-                "key.nameoffset" : 7290,
-                "key.offset" : 7286,
+                "key.nameoffset" : 7340,
+                "key.offset" : 7336,
                 "key.parsed_declaration" : "let swipeView: Content.SwipeActionsView",
-                "key.parsed_scope.end" : 237,
-                "key.parsed_scope.start" : 237,
+                "key.parsed_scope.end" : 239,
+                "key.parsed_scope.start" : 239,
                 "key.typename" : "Content.SwipeActionsView",
                 "key.typeusr" : "$s16SwipeActionsView10ListableUI11ItemContentPQzD",
                 "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfigurationV9swipeView0e7ActionsH0Qzvp"
@@ -19181,21 +19462,40 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var numberOfActions: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> numberOfActions<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 24,
                 "key.name" : "numberOfActions",
                 "key.namelength" : 15,
-                "key.nameoffset" : 7338,
-                "key.offset" : 7334,
+                "key.nameoffset" : 7388,
+                "key.offset" : 7384,
                 "key.parsed_declaration" : "var numberOfActions: Int",
-                "key.parsed_scope.end" : 238,
-                "key.parsed_scope.start" : 238,
+                "key.parsed_scope.end" : 240,
+                "key.parsed_scope.start" : 240,
                 "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfigurationV15numberOfActionsSivp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var performsFirstActionWithFullSwipe: Bool<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> performsFirstActionWithFullSwipe<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 42,
+                "key.name" : "performsFirstActionWithFullSwipe",
+                "key.namelength" : 32,
+                "key.nameoffset" : 7421,
+                "key.offset" : 7417,
+                "key.parsed_declaration" : "var performsFirstActionWithFullSwipe: Bool",
+                "key.parsed_scope.end" : 241,
+                "key.parsed_scope.start" : 241,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "Bool",
+                "key.typeusr" : "$sSbD",
+                "key.usr" : "s:10ListableUI8ItemCellC18SwipeConfigurationV027performsFirstActionWithFullE0Sbvp"
               }
             ],
             "key.typename" : "ItemCell.SwipeConfiguration.Type",
@@ -19214,19 +19514,19 @@
           {
             "key.attribute" : "source.decl.attribute.private",
             "key.length" : 7,
-            "key.offset" : 7368
+            "key.offset" : 7469
           }
         ],
         "key.bodylength" : 212,
-        "key.bodyoffset" : 7437,
+        "key.bodyoffset" : 7538,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 27,
-            "key.offset" : 7408
+            "key.offset" : 7509
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
         "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> class<\/syntaxtype.keyword> AccessibilitySwipeAction<\/decl.name> : UIAccessibilityCustomAction<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -19237,26 +19537,26 @@
         "key.length" : 274,
         "key.name" : "AccessibilitySwipeAction",
         "key.namelength" : 24,
-        "key.nameoffset" : 7382,
-        "key.offset" : 7376,
+        "key.nameoffset" : 7483,
+        "key.offset" : 7477,
         "key.parsed_declaration" : "private class AccessibilitySwipeAction: UIAccessibilityCustomAction",
-        "key.parsed_scope.end" : 249,
-        "key.parsed_scope.start" : 242,
+        "key.parsed_scope.end" : 252,
+        "key.parsed_scope.start" : 245,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let action: SwipeAction<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> action<\/decl.name>: SwipeAction<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
             "key.name" : "action",
             "key.namelength" : 6,
-            "key.nameoffset" : 7446,
-            "key.offset" : 7442,
+            "key.nameoffset" : 7547,
+            "key.offset" : 7543,
             "key.parsed_declaration" : "let action: SwipeAction",
-            "key.parsed_scope.end" : 243,
-            "key.parsed_scope.start" : 243,
+            "key.parsed_scope.end" : 246,
+            "key.parsed_scope.start" : 246,
             "key.typename" : "SwipeAction",
             "key.typeusr" : "$s10ListableUI11SwipeActionVD",
             "key.usr" : "s:10ListableUI24AccessibilitySwipeAction33_A7F567565BF168C7DEE5B4CF43486FBDLLC6actionAA0dE0Vvp"
@@ -19265,18 +19565,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "init(action: SwipeAction<\/Type>, target: Any?, selector: Selector<\/Type>)<\/Declaration>",
             "key.bodylength" : 115,
-            "key.bodyoffset" : 7532,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+            "key.bodyoffset" : 7633,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(action<\/decl.var.parameter.argument_label>: SwipeAction<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, target<\/decl.var.parameter.argument_label>: Any<\/syntaxtype.keyword>?<\/decl.var.parameter.type><\/decl.var.parameter>, selector<\/decl.var.parameter.argument_label>: Selector<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 177,
             "key.name" : "init(action:target:selector:)",
             "key.namelength" : 59,
-            "key.nameoffset" : 7471,
-            "key.offset" : 7471,
+            "key.nameoffset" : 7572,
+            "key.offset" : 7572,
             "key.parsed_declaration" : "init(action: SwipeAction, target: Any?, selector: Selector)",
-            "key.parsed_scope.end" : 248,
-            "key.parsed_scope.start" : 245,
+            "key.parsed_scope.end" : 251,
+            "key.parsed_scope.start" : 248,
             "key.substructure" : [
 
             ],
@@ -19296,29 +19596,29 @@
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 7710
+            "key.offset" : 7811
           }
         ],
         "key.bodylength" : 513,
-        "key.bodyoffset" : 7751,
+        "key.bodyoffset" : 7852,
         "key.doc.column" : 13,
         "key.doc.comment" : "These states dictate the layout of the swipe actions.",
         "key.doc.declaration" : "public enum SwipeActionState : Equatable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
-        "key.doc.full_as_xml" : "SwipeActionState<\/Name>s:10ListableUI16SwipeActionStateO<\/USR>public enum SwipeActionState : Equatable<\/Declaration>These states dictate the layout of the swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-        "key.doc.line" : 252,
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+        "key.doc.full_as_xml" : "SwipeActionState<\/Name>s:10ListableUI16SwipeActionStateO<\/USR>public enum SwipeActionState : Equatable<\/Declaration>These states dictate the layout of the swipe actions.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.line" : 255,
         "key.doc.name" : "SwipeActionState",
         "key.doc.type" : "Other",
         "key.doclength" : 58,
-        "key.docoffset" : 7652,
+        "key.docoffset" : 7753,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 7740
+            "key.offset" : 7841
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> SwipeActionState<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
         "key.inheritedtypes" : [
           {
@@ -19329,18 +19629,18 @@
         "key.length" : 548,
         "key.name" : "SwipeActionState",
         "key.namelength" : 16,
-        "key.nameoffset" : 7722,
-        "key.offset" : 7717,
+        "key.nameoffset" : 7823,
+        "key.offset" : 7818,
         "key.parsed_declaration" : "public enum SwipeActionState: Equatable",
-        "key.parsed_scope.end" : 267,
-        "key.parsed_scope.start" : 252,
+        "key.parsed_scope.end" : 270,
+        "key.parsed_scope.start" : 255,
         "key.substructure" : [
           {
             "key.kind" : "source.lang.swift.decl.enumcase",
             "key.length" : 11,
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 7802,
+            "key.offset" : 7903,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -19348,24 +19648,24 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The actions are completely collapsed.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
-                "key.doc.full_as_xml" : "closed<\/Name>s:10ListableUI16SwipeActionStateO6closedyA2CmF<\/USR><\/Declaration>The actions are completely collapsed.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 254,
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.doc.full_as_xml" : "closed<\/Name>s:10ListableUI16SwipeActionStateO6closedyA2CmF<\/USR><\/Declaration>The actions are completely collapsed.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 257,
                 "key.doc.name" : "closed",
                 "key.doc.type" : "Other",
                 "key.doclength" : 42,
-                "key.docoffset" : 7756,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.docoffset" : 7857,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> closed<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 6,
                 "key.name" : "closed",
                 "key.namelength" : 6,
-                "key.nameoffset" : 7807,
-                "key.offset" : 7807,
+                "key.nameoffset" : 7908,
+                "key.offset" : 7908,
                 "key.parsed_declaration" : "case closed",
-                "key.parsed_scope.end" : 254,
-                "key.parsed_scope.start" : 254,
+                "key.parsed_scope.end" : 257,
+                "key.parsed_scope.start" : 257,
                 "key.typename" : "(SwipeActionState.Type) -> SwipeActionState",
                 "key.typeusr" : "$sy10ListableUI16SwipeActionStateOACmcD",
                 "key.usr" : "s:10ListableUI16SwipeActionStateO6closedyA2CmF"
@@ -19377,7 +19677,7 @@
             "key.length" : 9,
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 7871,
+            "key.offset" : 7972,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -19385,24 +19685,24 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The actions are open to their natural size.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
-                "key.doc.full_as_xml" : "open<\/Name>s:10ListableUI16SwipeActionStateO4openyA2CmF<\/USR><\/Declaration>The actions are open to their natural size.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 257,
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.doc.full_as_xml" : "open<\/Name>s:10ListableUI16SwipeActionStateO4openyA2CmF<\/USR><\/Declaration>The actions are open to their natural size.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 260,
                 "key.doc.name" : "open",
                 "key.doc.type" : "Other",
                 "key.doclength" : 48,
-                "key.docoffset" : 7819,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.docoffset" : 7920,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> open<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 4,
                 "key.name" : "open",
                 "key.namelength" : 4,
-                "key.nameoffset" : 7876,
-                "key.offset" : 7876,
+                "key.nameoffset" : 7977,
+                "key.offset" : 7977,
                 "key.parsed_declaration" : "case open",
-                "key.parsed_scope.end" : 257,
-                "key.parsed_scope.start" : 257,
+                "key.parsed_scope.end" : 260,
+                "key.parsed_scope.start" : 260,
                 "key.typename" : "(SwipeActionState.Type) -> SwipeActionState",
                 "key.typeusr" : "$sy10ListableUI16SwipeActionStateOACmcD",
                 "key.usr" : "s:10ListableUI16SwipeActionStateO4openyA2CmF"
@@ -19414,7 +19714,7 @@
             "key.length" : 37,
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 7975,
+            "key.offset" : 8076,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -19422,24 +19722,24 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The actions are being swiped and the size is affected by the gesture recognizer.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
-                "key.doc.full_as_xml" : "swiping(willPerformAction:)<\/Name>s:10ListableUI16SwipeActionStateO7swipingyACSb_tcACmF<\/USR><\/Declaration>The actions are being swiped and the size is affected by the gesture recognizer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 260,
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.doc.full_as_xml" : "swiping(willPerformAction:)<\/Name>s:10ListableUI16SwipeActionStateO7swipingyACSb_tcACmF<\/USR><\/Declaration>The actions are being swiped and the size is affected by the gesture recognizer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 263,
                 "key.doc.name" : "swiping(willPerformAction:)",
                 "key.doc.type" : "Other",
                 "key.doclength" : 85,
-                "key.docoffset" : 7886,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.docoffset" : 7987,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> swiping<\/decl.name>(willPerformAction<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 32,
                 "key.name" : "swiping(willPerformAction:)",
                 "key.namelength" : 32,
-                "key.nameoffset" : 7980,
-                "key.offset" : 7980,
+                "key.nameoffset" : 8081,
+                "key.offset" : 8081,
                 "key.parsed_declaration" : "case swiping(willPerformAction: Bool)",
-                "key.parsed_scope.end" : 260,
-                "key.parsed_scope.start" : 260,
+                "key.parsed_scope.end" : 263,
+                "key.parsed_scope.start" : 263,
                 "key.substructure" : [
 
                 ],
@@ -19454,7 +19754,7 @@
             "key.length" : 40,
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 8095,
+            "key.offset" : 8196,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -19462,24 +19762,24 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The actions have been swiped far enough to confirm the first action.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
-                "key.doc.full_as_xml" : "willPerformFirstActionAutomatically<\/Name>s:10ListableUI16SwipeActionStateO016willPerformFirstD13AutomaticallyyA2CmF<\/USR><\/Declaration>The actions have been swiped far enough to confirm the first action.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 263,
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.doc.full_as_xml" : "willPerformFirstActionAutomatically<\/Name>s:10ListableUI16SwipeActionStateO016willPerformFirstD13AutomaticallyyA2CmF<\/USR><\/Declaration>The actions have been swiped far enough to confirm the first action.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 266,
                 "key.doc.name" : "willPerformFirstActionAutomatically",
                 "key.doc.type" : "Other",
                 "key.doclength" : 73,
-                "key.docoffset" : 8018,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.docoffset" : 8119,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> willPerformFirstActionAutomatically<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 35,
                 "key.name" : "willPerformFirstActionAutomatically",
                 "key.namelength" : 35,
-                "key.nameoffset" : 8100,
-                "key.offset" : 8100,
+                "key.nameoffset" : 8201,
+                "key.offset" : 8201,
                 "key.parsed_declaration" : "case willPerformFirstActionAutomatically",
-                "key.parsed_scope.end" : 263,
-                "key.parsed_scope.start" : 263,
+                "key.parsed_scope.end" : 266,
+                "key.parsed_scope.start" : 266,
                 "key.typename" : "(SwipeActionState.Type) -> SwipeActionState",
                 "key.typeusr" : "$sy10ListableUI16SwipeActionStateOACmcD",
                 "key.usr" : "s:10ListableUI16SwipeActionStateO016willPerformFirstD13AutomaticallyyA2CmF"
@@ -19491,7 +19791,7 @@
             "key.length" : 18,
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 8245,
+            "key.offset" : 8346,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -19499,24 +19799,24 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The actions have been asked to completely expand (typically because the item is being deleted).",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
-                "key.doc.full_as_xml" : "expandActions<\/Name>s:10ListableUI16SwipeActionStateO13expandActionsyA2CmF<\/USR><\/Declaration>The actions have been asked to completely expand (typically because the item is being deleted).<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 266,
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.doc.full_as_xml" : "expandActions<\/Name>s:10ListableUI16SwipeActionStateO13expandActionsyA2CmF<\/USR><\/Declaration>The actions have been asked to completely expand (typically because the item is being deleted).<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 269,
                 "key.doc.name" : "expandActions",
                 "key.doc.type" : "Other",
                 "key.doclength" : 100,
-                "key.docoffset" : 8141,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
+                "key.docoffset" : 8242,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.ContentViewContainer.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> expandActions<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 13,
                 "key.name" : "expandActions",
                 "key.namelength" : 13,
-                "key.nameoffset" : 8250,
-                "key.offset" : 8250,
+                "key.nameoffset" : 8351,
+                "key.offset" : 8351,
                 "key.parsed_declaration" : "case expandActions",
-                "key.parsed_scope.end" : 266,
-                "key.parsed_scope.start" : 266,
+                "key.parsed_scope.end" : 269,
+                "key.parsed_scope.start" : 269,
                 "key.typename" : "(SwipeActionState.Type) -> SwipeActionState",
                 "key.typeusr" : "$sy10ListableUI16SwipeActionStateOACmcD",
                 "key.usr" : "s:10ListableUI16SwipeActionStateO13expandActionsyA2CmF"
@@ -19531,7 +19831,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 5515,
     "key.offset" : 0,
@@ -19548,7 +19848,7 @@
             "key.offset" : 124
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
         "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> AnyItemCell<\/decl.name> : UICollectionViewCell<\/ref.class><\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -19568,7 +19868,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func closeSwipeActions()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> closeSwipeActions<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 24,
@@ -19586,7 +19886,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func wasDequeued(with liveCells: LiveCells<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasDequeued<\/decl.name>(with<\/decl.var.parameter.argument_label> liveCells<\/decl.var.parameter.name>: LiveCells<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 44,
@@ -19629,8 +19929,8 @@
             "Para" : "Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
-        "key.doc.full_as_xml" : "ItemCell<\/Name>s:10ListableUI8ItemCellC<\/USR>final class ItemCell<Content> : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent<\/Declaration>An internal cell type used to render items in the list.<\/Para><\/Abstract>Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+        "key.doc.full_as_xml" : "ItemCell<\/Name>s:10ListableUI8ItemCellC<\/USR>final class ItemCell<Content> : UICollectionViewCell, AnyItemCell where Content : ListableUI.ItemContent<\/Declaration>An internal cell type used to render items in the list.<\/Para><\/Abstract>Information on how cell selection appearance customization works: https:\/\/developer.apple.com\/documentation\/uikit\/uicollectionviewdelegate\/changing_the_appearance_of_selected_and_highlighted_cells<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 24,
         "key.doc.name" : "ItemCell",
         "key.doc.type" : "Class",
@@ -19648,7 +19948,7 @@
             "key.offset" : 576
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemCell<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : UICollectionViewCell<\/ref.class>, AnyItemCell<\/ref.protocol> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -19677,7 +19977,7 @@
                 "key.offset" : 539
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -19700,7 +20000,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let contentContainer: ContentContainerView<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentContainer<\/decl.name>: ContentContainerView<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 43,
@@ -19718,7 +20018,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let background: Content<\/Type>.BackgroundView<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> background<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
@@ -19736,7 +20036,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let selectedBackground: Content<\/Type>.SelectedBackgroundView<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> selectedBackground<\/decl.name>: Content<\/ref.generic_type_param>.SelectedBackgroundView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 55,
@@ -19763,7 +20063,7 @@
             ],
             "key.bodylength" : 768,
             "key.bodyoffset" : 782,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 794,
@@ -19787,7 +20087,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let bounds: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 52,
@@ -19851,7 +20151,7 @@
             ],
             "key.bodylength" : 1896,
             "key.bodyoffset" : 1794,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preferredLayoutAttributesFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> layoutAttributes<\/decl.var.parameter.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 2030,
@@ -19895,7 +20195,7 @@
             "key.bodylength" : 66,
             "key.bodyoffset" : 3780,
             "key.doc.comment" : "Listable already properly sizes each cell. We do not use self-sizing cells.\nThus, just return the existing layout attributes.\n\nThis avoids an expensive call to sizeThatFits to \"re-size\" the cell to the same size\nduring each of UICollectionView's layout passes:\n\n#0  ItemElementCell.sizeThatFits(_:)\n#1  @objc ItemElementCell.sizeThatFits(_:) ()\n#2  -[UICollectionViewCell systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:] ()\n#3  -[UICollectionReusableView preferredLayoutAttributesFittingAttributes:] ()\n#4  -[UICollectionReusableView _preferredLayoutAttributesFittingAttributes:] ()\n#5  -[UICollectionView _checkForPreferredAttributesInView:originalAttributes:] ()\n#6  -[UICollectionView _updateVisibleCellsNow:] ()\n#7  -[UICollectionView layoutSubviews] ()\n\nReturning the passed in value without calling super is OK, per the docs:\nhttps:\/\/developer.apple.com\/documentation\/uikit\/uicollectionreusableview\/1620132-preferredlayoutattributesfitting\n\n  | The default implementation of this method adjusts the size values to accommodate changes made by a self-sizing cell.\n  | Subclasses can override this method and use it to adjust other layout attributes too.\n  | If you override this method and want the cell size adjustments, call super first and make your own modifications to the returned attributes.\n\nImportant part being \"If you override this method **and want the cell size adjustments**, call super first\".\n\nWe do not want these. Thus, this is fine.",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sizeThatFits<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 112,
@@ -19930,7 +20230,7 @@
             ],
             "key.bodylength" : 83,
             "key.bodyoffset" : 3928,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 146,
@@ -19970,7 +20270,7 @@
             ],
             "key.bodylength" : 237,
             "key.bodyoffset" : 4241,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withHorizontalFittingPriority<\/decl.var.parameter.argument_label> horizontalFittingPriority<\/decl.var.parameter.name>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, verticalFittingPriority<\/decl.var.parameter.argument_label>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 448,
@@ -20010,7 +20310,7 @@
             ],
             "key.bodylength" : 115,
             "key.bodyoffset" : 4521,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 143,
@@ -20046,7 +20346,7 @@
             "key.annotated_decl" : "func closeSwipeActions()<\/Declaration>",
             "key.bodylength" : 58,
             "key.bodyoffset" : 4703,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> closeSwipeActions<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 85,
@@ -20079,7 +20379,7 @@
                 "key.offset" : 4772
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasBeenDequeued<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
@@ -20100,7 +20400,7 @@
             "key.annotated_decl" : "func wasDequeued(with liveCells: LiveCells<\/Type>)<\/Declaration>",
             "key.bodylength" : 162,
             "key.bodyoffset" : 4863,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasDequeued<\/decl.name>(with<\/decl.var.parameter.argument_label> liveCells<\/decl.var.parameter.name>: LiveCells<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 209,
@@ -20140,7 +20440,7 @@
         ],
         "key.bodylength" : 459,
         "key.bodyoffset" : 5054,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> LiveCells<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 477,
@@ -20157,7 +20457,7 @@
             "key.annotated_decl" : "func add(_ cell: AnyItemCell<\/Type>)<\/Declaration>",
             "key.bodylength" : 117,
             "key.bodyoffset" : 5096,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> add<\/decl.name>(_<\/decl.var.parameter.argument_label> cell<\/decl.var.parameter.name>: AnyItemCell<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 150,
@@ -20180,7 +20480,7 @@
             "key.annotated_decl" : "func perform(_ block: (AnyItemCell<\/Type>) -> ())<\/Declaration>",
             "key.bodylength" : 122,
             "key.bodyoffset" : 5269,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> perform<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (AnyItemCell<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 168,
@@ -20208,7 +20508,7 @@
                 "key.offset" : 5402
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> cells<\/decl.name>: [LiveCell<\/ref.struct>]<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
@@ -20229,7 +20529,7 @@
             "key.annotated_decl" : "struct LiveCells<\/Type>.LiveCell<\/Declaration>",
             "key.bodylength" : 42,
             "key.bodyoffset" : 5469,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> LiveCells<\/ref.class>.LiveCell<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 60,
@@ -20251,7 +20551,7 @@
                     "key.offset" : 5478
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ItemCell.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ItemCell.swift",
                 "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> cell<\/decl.name>: AnyItemCell<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 23,
@@ -20280,7 +20580,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 9296,
     "key.offset" : 0,
@@ -20297,7 +20597,7 @@
             "key.offset" : 145
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
         "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> KeyboardObserverDelegate<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -20317,7 +20617,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func keyboardFrameWillChange(for observer: KeyboardObserver<\/Type>, animationDuration: Double<\/Type>, options: UIView<\/Type>.AnimationOptions<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> keyboardFrameWillChange<\/decl.name>(for<\/decl.var.parameter.argument_label> observer<\/decl.var.parameter.name>: KeyboardObserver<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, animationDuration<\/decl.var.parameter.argument_label>: Double<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, options<\/decl.var.parameter.argument_label>: UIView<\/ref.class>.AnimationOptions<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 154,
@@ -20366,14 +20666,14 @@
             "Para" : "iOS Docs for keyboard management: https:\/\/developer.apple.com\/library\/archive\/documentation\/StringsTextFonts\/Conceptual\/TextAndWebiPhoneOS\/KeyboardManagement\/KeyboardManagement.html"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-        "key.doc.full_as_xml" : "KeyboardObserver<\/Name>s:10ListableUI16KeyboardObserverC<\/USR>final class KeyboardObserver<\/Declaration>Encapsulates listening for system keyboard updates, plus transforming the visible frame of the keyboard into the coordinates of a requested view.<\/Para><\/Abstract>You use this class by providing a delegate, which receives callbacks when changes to the keyboard frame occur. You would usually implement the delegate somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Notes]]><\/rawHTML>iOS Docs for keyboard management: https:\/\/developer.apple.com\/library\/archive\/documentation\/StringsTextFonts\/Conceptual\/TextAndWebiPhoneOS\/KeyboardManagement\/KeyboardManagement.html<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+        "key.doc.full_as_xml" : "KeyboardObserver<\/Name>s:10ListableUI16KeyboardObserverC<\/USR>final class KeyboardObserver<\/Declaration>Encapsulates listening for system keyboard updates, plus transforming the visible frame of the keyboard into the coordinates of a requested view.<\/Para><\/Abstract>You use this class by providing a delegate, which receives callbacks when changes to the keyboard frame occur. You would usually implement the delegate somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Notes]]><\/rawHTML>iOS Docs for keyboard management: https:\/\/developer.apple.com\/library\/archive\/documentation\/StringsTextFonts\/Conceptual\/TextAndWebiPhoneOS\/KeyboardManagement\/KeyboardManagement.html<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 43,
         "key.doc.name" : "KeyboardObserver",
         "key.doc.type" : "Class",
         "key.doclength" : 891,
         "key.docoffset" : 324,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> KeyboardObserver<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 5394,
@@ -20399,14 +20699,14 @@
                 "Para" : "Thus, the `shared` observer is set up on app startup (see `SetupKeyboardObserverOnAppStartup.m`) to avoid this problem."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-            "key.doc.full_as_xml" : "shared<\/Name>s:10ListableUI16KeyboardObserverC6sharedACvpZ<\/USR>static let shared: KeyboardObserver<\/Declaration>The global shared keyboard observer. Why is it a global shared instance? We can only know the keyboard position via the keyboard frame notifications.<\/Para><\/Abstract>If a ListView<\/codeVoice> is created while a keyboard is already on-screen, we’d have no way to determine the keyboard frame, and thus couldn’t provide the correct content insets to avoid the visible keyboard.<\/Para>Thus, the shared<\/codeVoice> observer is set up on app startup (see SetupKeyboardObserverOnAppStartup.m<\/codeVoice>) to avoid this problem.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.doc.full_as_xml" : "shared<\/Name>s:10ListableUI16KeyboardObserverC6sharedACvpZ<\/USR>static let shared: KeyboardObserver<\/Declaration>The global shared keyboard observer. Why is it a global shared instance? We can only know the keyboard position via the keyboard frame notifications.<\/Para><\/Abstract>If a ListView<\/codeVoice> is created while a keyboard is already on-screen, we’d have no way to determine the keyboard frame, and thus couldn’t provide the correct content insets to avoid the visible keyboard.<\/Para>Thus, the shared<\/codeVoice> observer is set up on app startup (see SetupKeyboardObserverOnAppStartup.m<\/codeVoice>) to avoid this problem.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 54,
             "key.doc.name" : "shared",
             "key.doc.type" : "Other",
             "key.doclength" : 538,
             "key.docoffset" : 1256,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> shared<\/decl.name>: KeyboardObserver<\/ref.class><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 73,
@@ -20434,14 +20734,14 @@
             "key.doc.column" : 28,
             "key.doc.comment" : "Allow logging to the console if app startup-timed shared instance startup did not\noccur; this could cause bugs for the reasons outlined above.",
             "key.doc.declaration" : "fileprivate static var didSetupSharedInstanceDuringAppStartup: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-            "key.doc.full_as_xml" : "didSetupSharedInstanceDuringAppStartup<\/Name>s:10ListableUI16KeyboardObserverC38didSetupSharedInstanceDuringAppStartup33_7A7D548761D56153640A94A774282F3CLLSbvpZ<\/USR>fileprivate static var didSetupSharedInstanceDuringAppStartup: Bool<\/Declaration>Allow logging to the console if app startup-timed shared instance startup did not occur; this could cause bugs for the reasons outlined above.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.doc.full_as_xml" : "didSetupSharedInstanceDuringAppStartup<\/Name>s:10ListableUI16KeyboardObserverC38didSetupSharedInstanceDuringAppStartup33_7A7D548761D56153640A94A774282F3CLLSbvpZ<\/USR>fileprivate static var didSetupSharedInstanceDuringAppStartup: Bool<\/Declaration>Allow logging to the console if app startup-timed shared instance startup did not occur; this could cause bugs for the reasons outlined above.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 58,
             "key.doc.name" : "didSetupSharedInstanceDuringAppStartup",
             "key.doc.type" : "Other",
             "key.doclength" : 155,
             "key.docoffset" : 1881,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didSetupSharedInstanceDuringAppStartup<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 57,
@@ -20467,7 +20767,7 @@
                 "key.offset" : 2119
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> center<\/decl.name>: NotificationCenter<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -20492,7 +20792,7 @@
                 "key.offset" : 2168
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> delegates<\/decl.name>: [Delegate<\/ref.struct>]<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -20513,7 +20813,7 @@
             "key.annotated_decl" : "struct KeyboardObserver<\/Type>.Delegate<\/Declaration>",
             "key.bodylength" : 69,
             "key.bodyoffset" : 2239,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> KeyboardObserver<\/ref.class>.Delegate<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 87,
@@ -20540,7 +20840,7 @@
                     "key.offset" : 2248
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> value<\/decl.name>: KeyboardObserverDelegate<\/ref.protocol><\/decl.var.type> { get }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 37,
@@ -20574,7 +20874,7 @@
             "key.annotated_decl" : "init(center: NotificationCenter<\/Type>)<\/Declaration>",
             "key.bodylength" : 867,
             "key.bodyoffset" : 2401,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(center<\/decl.var.parameter.argument_label>: NotificationCenter<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 903,
@@ -20603,7 +20903,7 @@
               }
             ],
             "key.doc.comment" : "We need to listen to both `will` and `keyboardDidChangeFrame` notifications. Why?\n\nWhen dealing with an undocked or floating keyboard, moving the keyboard\naround the screen does NOT call `willChangeFrame`; only `didChangeFrame` is called.\n\nBefore calling the delegate, we compare `old.endingFrame != new.endingFrame`,\nwhich ensures that the delegate is notified if the frame really changes, and\nprevents duplicate calls.",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> latestNotification<\/decl.name>: NotificationInfo<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 42,
@@ -20632,7 +20932,7 @@
             "key.annotated_decl" : "func add(delegate: KeyboardObserverDelegate<\/Type>)<\/Declaration>",
             "key.bodylength" : 230,
             "key.bodyoffset" : 3428,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> add<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: KeyboardObserverDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 278,
@@ -20655,7 +20955,7 @@
             "key.annotated_decl" : "func remove(delegate: KeyboardObserverDelegate<\/Type>)<\/Declaration>",
             "key.bodylength" : 135,
             "key.bodyoffset" : 3719,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> remove<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: KeyboardObserverDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 186,
@@ -20685,7 +20985,7 @@
             ],
             "key.bodylength" : 78,
             "key.bodyoffset" : 3908,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> removeDeallocatedDelegates<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 114,
@@ -20723,7 +21023,7 @@
                 "key.offset" : 4067
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> KeyboardObserver<\/ref.class>.KeyboardFrame<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -20753,14 +21053,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "The current frame does not overlap the current view at all.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-                    "key.doc.full_as_xml" : "nonOverlapping<\/Name>s:10ListableUI16KeyboardObserverC0C5FrameO14nonOverlappingyA2EmF<\/USR><\/Declaration>The current frame does not overlap the current view at all.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                    "key.doc.full_as_xml" : "nonOverlapping<\/Name>s:10ListableUI16KeyboardObserverC0C5FrameO14nonOverlappingyA2EmF<\/USR><\/Declaration>The current frame does not overlap the current view at all.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 127,
                     "key.doc.name" : "nonOverlapping",
                     "key.doc.type" : "Other",
                     "key.doclength" : 64,
                     "key.docoffset" : 4096,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> nonOverlapping<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 14,
@@ -20790,14 +21090,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "The current frame does overlap the view, by the provided rect, in the view's coordinate space.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-                    "key.doc.full_as_xml" : "overlapping(frame:)<\/Name>s:10ListableUI16KeyboardObserverC0C5FrameO11overlappingyAESo6CGRectV_tcAEmF<\/USR><\/Declaration>The current frame does overlap the view, by the provided rect, in the view’s coordinate space.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                    "key.doc.full_as_xml" : "overlapping(frame:)<\/Name>s:10ListableUI16KeyboardObserverC0C5FrameO11overlappingyAESo6CGRectV_tcAEmF<\/USR><\/Declaration>The current frame does overlap the view, by the provided rect, in the view’s coordinate space.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 130,
                     "key.doc.name" : "overlapping(frame:)",
                     "key.doc.type" : "Other",
                     "key.doclength" : 99,
                     "key.docoffset" : 4205,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> overlapping<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 26,
@@ -20830,14 +21130,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "How the keyboard overlaps the view provided. If the view is not on screen (eg, no window),\nor the observer has not yet learned about the keyboard's position, this method returns nil.",
             "key.doc.declaration" : "func currentFrame(in view: UIView) -> KeyboardFrame?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-            "key.doc.full_as_xml" : "currentFrame(in:)<\/Name>s:10ListableUI16KeyboardObserverC12currentFrame2inAC0cF0OSgSo6UIViewC_tF<\/USR>func currentFrame(in view: UIView) -> KeyboardFrame?<\/Declaration>How the keyboard overlaps the view provided. If the view is not on screen (eg, no window), or the observer has not yet learned about the keyboard’s position, this method returns nil.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.doc.full_as_xml" : "currentFrame(in:)<\/Name>s:10ListableUI16KeyboardObserverC12currentFrame2inAC0cF0OSgSo6UIViewC_tF<\/USR>func currentFrame(in view: UIView) -> KeyboardFrame?<\/Declaration>How the keyboard overlaps the view provided. If the view is not on screen (eg, no window), or the observer has not yet learned about the keyboard’s position, this method returns nil.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 135,
             "key.doc.name" : "currentFrame(in:)",
             "key.doc.type" : "Function",
             "key.doclength" : 195,
             "key.docoffset" : 4359,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> currentFrame<\/decl.name>(in<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> KeyboardFrame<\/ref.enum>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 488,
@@ -20851,7 +21151,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let frame: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 61,
@@ -20891,7 +21191,7 @@
             ],
             "key.bodylength" : 985,
             "key.bodyoffset" : 5174,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> receivedUpdatedKeyboardInfo<\/decl.name>(_<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: NotificationInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1046,
@@ -20905,7 +21205,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let old: KeyboardObserver<\/Type>.NotificationInfo<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: KeyboardObserver<\/ref.class>.NotificationInfo<\/ref.struct>?<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 33,
@@ -20923,7 +21223,7 @@
               {
                 "key.annotated_decl" : "let old: KeyboardObserver<\/Type>.NotificationInfo<\/Type><\/Declaration>",
                 "key.doc.comment" : "Only communicate a frame change to the delegate if the frame actually changed.",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: KeyboardObserver<\/ref.class>.NotificationInfo<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 3,
@@ -20946,14 +21246,14 @@
                     "Para" : "This is unfortunately a private UIView curve. However, we can map it to the animation options’ curve like so: https:\/\/stackoverflow.com\/questions\/26939105\/keyboard-animation-curve-as-int"
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-                "key.doc.full_as_xml" : "animationOptions<\/Name>s:10ListableUI16KeyboardObserverC015receivedUpdatedC4Info33_7A7D548761D56153640A94A774282F3CLLyyAC012NotificationG0VF16animationOptionsL_So015UIViewAnimationP0Vvp<\/USR>let animationOptions: UIView.AnimationOptions<\/Declaration>Create an animation curve with the correct curve for showing or hiding the keyboard.<\/Para><\/Abstract>This is unfortunately a private UIView curve. However, we can map it to the animation options’ curve like so: https:\/\/stackoverflow.com\/questions\/26939105\/keyboard-animation-curve-as-int<\/Para><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.doc.full_as_xml" : "animationOptions<\/Name>s:10ListableUI16KeyboardObserverC015receivedUpdatedC4Info33_7A7D548761D56153640A94A774282F3CLLyyAC012NotificationG0VF16animationOptionsL_So015UIViewAnimationP0Vvp<\/USR>let animationOptions: UIView.AnimationOptions<\/Declaration>Create an animation curve with the correct curve for showing or hiding the keyboard.<\/Para><\/Abstract>This is unfortunately a private UIView curve. However, we can map it to the animation options’ curve like so: https:\/\/stackoverflow.com\/questions\/26939105\/keyboard-animation-curve-as-int<\/Para><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 176,
                 "key.doc.name" : "animationOptions",
                 "key.doc.type" : "Other",
                 "key.doclength" : 324,
                 "key.docoffset" : 5499,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> animationOptions<\/decl.name>: UIView<\/ref.class>.AnimationOptions<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 82,
@@ -20998,7 +21298,7 @@
             ],
             "key.bodylength" : 316,
             "key.bodyoffset" : 6297,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> keyboardFrameChanged<\/decl.name>(_<\/decl.var.parameter.argument_label> notification<\/decl.var.parameter.name>: Notification<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 375,
@@ -21038,12 +21338,12 @@
             "Para" : "iOS Docs for keyboard management: https:\/\/developer.apple.com\/library\/archive\/documentation\/StringsTextFonts\/Conceptual\/TextAndWebiPhoneOS\/KeyboardManagement\/KeyboardManagement.html"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-        "key.doc.full_as_xml" : "KeyboardObserver<\/Name>s:10ListableUI16KeyboardObserverC<\/USR>final class KeyboardObserver<\/Declaration>Encapsulates listening for system keyboard updates, plus transforming the visible frame of the keyboard into the coordinates of a requested view.<\/Para><\/Abstract>You use this class by providing a delegate, which receives callbacks when changes to the keyboard frame occur. You would usually implement the delegate somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Notes]]><\/rawHTML>iOS Docs for keyboard management: https:\/\/developer.apple.com\/library\/archive\/documentation\/StringsTextFonts\/Conceptual\/TextAndWebiPhoneOS\/KeyboardManagement\/KeyboardManagement.html<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+        "key.doc.full_as_xml" : "KeyboardObserver<\/Name>s:10ListableUI16KeyboardObserverC<\/USR>final class KeyboardObserver<\/Declaration>Encapsulates listening for system keyboard updates, plus transforming the visible frame of the keyboard into the coordinates of a requested view.<\/Para><\/Abstract>You use this class by providing a delegate, which receives callbacks when changes to the keyboard frame occur. You would usually implement the delegate somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Notes]]><\/rawHTML>iOS Docs for keyboard management: https:\/\/developer.apple.com\/library\/archive\/documentation\/StringsTextFonts\/Conceptual\/TextAndWebiPhoneOS\/KeyboardManagement\/KeyboardManagement.html<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 43,
         "key.doc.name" : "KeyboardObserver",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> KeyboardObserver<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1476,
@@ -21066,7 +21366,7 @@
                 "key.offset" : 6677
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> NotificationInfo<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -21086,7 +21386,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var endingFrame: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> endingFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 32,
@@ -21105,7 +21405,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var animationDuration: Double<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> animationDuration<\/decl.name>: Double<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 36,
@@ -21124,7 +21424,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var animationCurve: UInt<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> animationCurve<\/decl.name>: UInt<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 29,
@@ -21145,7 +21445,7 @@
                 "key.annotated_decl" : "init(with notification: Notification<\/Type>) throws<\/Declaration>",
                 "key.bodylength" : 963,
                 "key.bodyoffset" : 6895,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> notification<\/decl.var.parameter.name>: Notification<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) throws<\/syntaxtype.keyword><\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1011,
@@ -21180,7 +21480,7 @@
                     "key.offset" : 7902
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                 "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> KeyboardObserver<\/ref.class>.NotificationInfo<\/ref.struct>.ParseError<\/decl.name> : Error<\/ref.protocol>, Equatable<\/ref.protocol><\/decl.enum>",
                 "key.inheritedtypes" : [
                   {
@@ -21210,7 +21510,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.internal",
                         "key.annotated_decl" : "case missingUserInfo<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> missingUserInfo<\/decl.name><\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 15,
@@ -21237,7 +21537,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.internal",
                         "key.annotated_decl" : "case missingEndingFrame<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> missingEndingFrame<\/decl.name><\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 18,
@@ -21264,7 +21564,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.internal",
                         "key.annotated_decl" : "case missingAnimationDuration<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> missingAnimationDuration<\/decl.name><\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 24,
@@ -21291,7 +21591,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.internal",
                         "key.annotated_decl" : "case missingAnimationCurve<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> missingAnimationCurve<\/decl.name><\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 21,
@@ -21340,12 +21640,12 @@
             "Para" : "iOS Docs for keyboard management: https:\/\/developer.apple.com\/library\/archive\/documentation\/StringsTextFonts\/Conceptual\/TextAndWebiPhoneOS\/KeyboardManagement\/KeyboardManagement.html"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-        "key.doc.full_as_xml" : "KeyboardObserver<\/Name>s:10ListableUI16KeyboardObserverC<\/USR>final class KeyboardObserver<\/Declaration>Encapsulates listening for system keyboard updates, plus transforming the visible frame of the keyboard into the coordinates of a requested view.<\/Para><\/Abstract>You use this class by providing a delegate, which receives callbacks when changes to the keyboard frame occur. You would usually implement the delegate somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Notes]]><\/rawHTML>iOS Docs for keyboard management: https:\/\/developer.apple.com\/library\/archive\/documentation\/StringsTextFonts\/Conceptual\/TextAndWebiPhoneOS\/KeyboardManagement\/KeyboardManagement.html<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+        "key.doc.full_as_xml" : "KeyboardObserver<\/Name>s:10ListableUI16KeyboardObserverC<\/USR>final class KeyboardObserver<\/Declaration>Encapsulates listening for system keyboard updates, plus transforming the visible frame of the keyboard into the coordinates of a requested view.<\/Para><\/Abstract>You use this class by providing a delegate, which receives callbacks when changes to the keyboard frame occur. You would usually implement the delegate somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Notes]]><\/rawHTML>iOS Docs for keyboard management: https:\/\/developer.apple.com\/library\/archive\/documentation\/StringsTextFonts\/Conceptual\/TextAndWebiPhoneOS\/KeyboardManagement\/KeyboardManagement.html<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 43,
         "key.doc.name" : "KeyboardObserver",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> KeyboardObserver<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 714,
@@ -21364,14 +21664,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Called by `ListView` on setup, to warn developers\nif something has gone wrong with keyboard setup.",
             "key.doc.declaration" : "static func logKeyboardSetupWarningIfNeeded()",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-            "key.doc.full_as_xml" : "logKeyboardSetupWarningIfNeeded()<\/Name>s:10ListableUI16KeyboardObserverC03logC20SetupWarningIfNeededyyFZ<\/USR>static func logKeyboardSetupWarningIfNeeded()<\/Declaration>Called by ListView<\/codeVoice> on setup, to warn developers if something has gone wrong with keyboard setup.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.doc.full_as_xml" : "logKeyboardSetupWarningIfNeeded()<\/Name>s:10ListableUI16KeyboardObserverC03logC20SetupWarningIfNeededyyFZ<\/USR>static func logKeyboardSetupWarningIfNeeded()<\/Declaration>Called by ListView<\/codeVoice> on setup, to warn developers if something has gone wrong with keyboard setup.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 251,
             "key.doc.name" : "logKeyboardSetupWarningIfNeeded()",
             "key.doc.type" : "Function",
             "key.doclength" : 111,
             "key.docoffset" : 8135,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> logKeyboardSetupWarningIfNeeded<\/decl.name>()<\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 559,
@@ -21419,8 +21719,8 @@
         "key.doc.column" : 26,
         "key.doc.comment" : "An Objective-C accessible class that lets us set up the shared\nobserver on app startup, without needing to make `KeyboardObserver` Objective-C\naccessible and public. See `SetupKeyboardObserverOnAppStartup.m` for more.",
         "key.doc.declaration" : "@objc public final class __LST_KeyboardObserver_ObjCAccess : NSObject",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
-        "key.doc.full_as_xml" : "__LST_KeyboardObserver_ObjCAccess<\/Name>c:@M@ListableUI@objc(cs)__LST_KeyboardObserver_ObjCAccess<\/USR>@objc public final class __LST_KeyboardObserver_ObjCAccess : NSObject<\/Declaration>An Objective-C accessible class that lets us set up the shared observer on app startup, without needing to make KeyboardObserver<\/codeVoice> Objective-C accessible and public. See SetupKeyboardObserverOnAppStartup.m<\/codeVoice> for more.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+        "key.doc.full_as_xml" : "__LST_KeyboardObserver_ObjCAccess<\/Name>c:@M@ListableUI@objc(cs)__LST_KeyboardObserver_ObjCAccess<\/USR>@objc public final class __LST_KeyboardObserver_ObjCAccess : NSObject<\/Declaration>An Objective-C accessible class that lets us set up the shared observer on app startup, without needing to make KeyboardObserver<\/codeVoice> Objective-C accessible and public. See SetupKeyboardObserverOnAppStartup.m<\/codeVoice> for more.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 271,
         "key.doc.name" : "__LST_KeyboardObserver_ObjCAccess",
         "key.doc.type" : "Class",
@@ -21433,7 +21733,7 @@
             "key.offset" : 9105
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
         "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> __LST_KeyboardObserver_ObjCAccess<\/decl.name> : NSObject<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -21467,7 +21767,7 @@
             ],
             "key.bodylength" : 121,
             "key.bodyoffset" : 9170,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/KeyboardObserver\/KeyboardObserver.swift",
             "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> __setupSharedInstance<\/decl.name>()<\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 159,
@@ -21490,7 +21790,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Modify.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Modify.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 245,
     "key.offset" : 0,
@@ -21500,7 +21800,7 @@
         "key.annotated_decl" : "func modified<Value>(_ initial: Value<\/Type>, _ modify: (inout Value<\/Type>) -> ()) -> Value<\/Type><\/Declaration>",
         "key.bodylength" : 58,
         "key.bodyoffset" : 185,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Modify.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Modify.swift",
         "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> modified<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> initial<\/decl.var.parameter.name>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> modify<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.free>",
         "key.kind" : "source.lang.swift.decl.function.free",
         "key.length" : 141,
@@ -21514,7 +21814,7 @@
         "key.substructure" : [
           {
             "key.annotated_decl" : "Value<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Modify.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Modify.swift",
             "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 5,
@@ -21531,7 +21831,7 @@
           },
           {
             "key.annotated_decl" : "var copy: Value<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Modify.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Modify.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> copy<\/decl.name>: Value<\/decl.var.type><\/decl.var.local>",
             "key.kind" : "source.lang.swift.decl.var.local",
             "key.length" : 18,
@@ -21554,7 +21854,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 6626,
     "key.offset" : 0,
@@ -21571,7 +21871,7 @@
             "key.offset" : 177
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
         "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> AnyPresentationHeaderFooterState<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -21593,7 +21893,7 @@
             "key.annotated_decl" : "var anyModel: AnyHeaderFooter<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 225,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyModel<\/decl.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 38,
@@ -21611,7 +21911,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func dequeueAndPrepareReusableHeaderFooterView(in cache: ReusableViewCache<\/Type>, frame: CGRect<\/Type>, environment: ListEnvironment<\/Type>) -> UIView<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> dequeueAndPrepareReusableHeaderFooterView<\/decl.name>(in<\/decl.var.parameter.argument_label> cache<\/decl.var.parameter.name>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIView<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 163,
@@ -21632,7 +21932,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func enqueueReusableHeaderFooterView(_ view: UIView<\/Type>, in cache: ReusableViewCache<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> enqueueReusableHeaderFooterView<\/decl.name>(_<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> cache<\/decl.var.parameter.name>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 83,
@@ -21653,7 +21953,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func applyTo(view: UIView<\/Type>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyTo<\/decl.name>(view<\/decl.var.parameter.argument_label>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 125,
@@ -21674,7 +21974,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func setNew(headerFooter anyHeaderFooter: AnyHeaderFooter<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setNew<\/decl.name>(headerFooter<\/decl.var.parameter.argument_label> anyHeaderFooter<\/decl.var.parameter.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 59,
@@ -21695,7 +21995,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func resetCachedSizes()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetCachedSizes<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 23,
@@ -21713,7 +22013,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func size(for info: Sizing<\/Type>.MeasureInfo<\/Type>, cache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> CGSize<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, cache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 138,
@@ -21742,12 +22042,12 @@
         "key.bodyoffset" : 911,
         "key.doc.column" : 13,
         "key.doc.declaration" : "final class PresentationState",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
-        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 11,
         "key.doc.name" : "PresentationState",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 5743,
@@ -21770,7 +22070,7 @@
             ],
             "key.bodylength" : 1101,
             "key.bodyoffset" : 959,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> HeaderFooterViewStatePair<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 1139,
@@ -21787,7 +22087,7 @@
                 "key.annotated_decl" : "var state: AnyPresentationHeaderFooterState<\/Type>? { get set }<\/Declaration>",
                 "key.bodylength" : 340,
                 "key.bodyoffset" : 1015,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> state<\/decl.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 388,
@@ -21813,7 +22113,7 @@
                     "key.offset" : 1374
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> visibleContainer<\/decl.name>: SupplementaryContainerView<\/ref.class>?<\/decl.var.type> { get }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 50,
@@ -21834,7 +22134,7 @@
                 "key.annotated_decl" : "func willDisplay(view: SupplementaryContainerView<\/Type>)<\/Declaration>",
                 "key.bodylength" : 50,
                 "key.bodyoffset" : 1516,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> willDisplay<\/decl.name>(view<\/decl.var.parameter.argument_label>: SupplementaryContainerView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 112,
@@ -21857,7 +22157,7 @@
                 "key.annotated_decl" : "func didEndDisplay()<\/Declaration>",
                 "key.bodylength" : 49,
                 "key.bodyoffset" : 1615,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> didEndDisplay<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 80,
@@ -21877,7 +22177,7 @@
                 "key.annotated_decl" : "func applyToVisibleView(with environment: ListEnvironment<\/Type>)<\/Declaration>",
                 "key.bodylength" : 302,
                 "key.bodyoffset" : 1752,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyToVisibleView<\/decl.name>(with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 372,
@@ -21918,7 +22218,7 @@
                 "key.offset" : 2137
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> HeaderFooterState<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyPresentationHeaderFooterState<\/ref.protocol> where<\/syntaxtype.keyword> Content : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
             "key.inheritedtypes" : [
               {
@@ -21944,7 +22244,7 @@
                     "key.offset" : 2114
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : HeaderFooterContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -21967,7 +22267,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var model: HeaderFooter<\/Type><Content<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> model<\/decl.name>: HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 33,
@@ -21986,7 +22286,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let performsContentCallbacks: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 35,
@@ -22006,7 +22306,7 @@
                 "key.annotated_decl" : "init(_ model: HeaderFooter<\/Type><Content<\/Type>>, performsContentCallbacks: Bool<\/Type>)<\/Declaration>",
                 "key.bodylength" : 109,
                 "key.bodyoffset" : 2376,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: HeaderFooter<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 190,
@@ -22037,7 +22337,7 @@
                 "key.annotated_decl" : "var anyModel: AnyHeaderFooter<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 39,
                 "key.bodyoffset" : 2594,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyModel<\/decl.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 71,
@@ -22062,7 +22362,7 @@
                 "key.annotated_decl" : "func dequeueAndPrepareReusableHeaderFooterView(in cache: ReusableViewCache<\/Type>, frame: CGRect<\/Type>, environment: ListEnvironment<\/Type>) -> UIView<\/Type><\/Declaration>",
                 "key.bodylength" : 362,
                 "key.bodyoffset" : 2849,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> dequeueAndPrepareReusableHeaderFooterView<\/decl.name>(in<\/decl.var.parameter.argument_label> cache<\/decl.var.parameter.name>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIView<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 552,
@@ -22081,7 +22381,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let view: HeaderFooterContentView<\/Type><Content><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: HeaderFooterContentView<\/ref.class><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 133,
@@ -22106,7 +22406,7 @@
                 "key.annotated_decl" : "func enqueueReusableHeaderFooterView(_ view: UIView<\/Type>, in cache: ReusableViewCache<\/Type>)<\/Declaration>",
                 "key.bodylength" : 72,
                 "key.bodyoffset" : 3323,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> enqueueReusableHeaderFooterView<\/decl.name>(_<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> cache<\/decl.var.parameter.name>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 166,
@@ -22134,7 +22434,7 @@
                 "key.annotated_decl" : "func applyTo(view: UIView<\/Type>, for reason: ApplyReason<\/Type>, with info: ApplyHeaderFooterContentInfo<\/Type>)<\/Declaration>",
                 "key.bodylength" : 622,
                 "key.bodyoffset" : 3557,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyTo<\/decl.name>(view<\/decl.var.parameter.argument_label>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyHeaderFooterContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 766,
@@ -22153,7 +22453,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let view: HeaderFooterContentView<\/Type><Content><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: HeaderFooterContentView<\/ref.class><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 52,
@@ -22170,7 +22470,7 @@
                   },
                   {
                     "key.annotated_decl" : "let views: HeaderFooterContentViews<\/Type><Content><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> views<\/decl.name>: HeaderFooterContentViews<\/ref.struct><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 192,
@@ -22195,7 +22495,7 @@
                 "key.annotated_decl" : "func setNew(headerFooter anyHeaderFooter: AnyHeaderFooter<\/Type>)<\/Declaration>",
                 "key.bodylength" : 318,
                 "key.bodyoffset" : 4266,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setNew<\/decl.name>(headerFooter<\/decl.var.parameter.argument_label> anyHeaderFooter<\/decl.var.parameter.name>: AnyHeaderFooter<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 387,
@@ -22214,7 +22514,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let oldModel: HeaderFooter<\/Type><Content><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldModel<\/decl.name>: HeaderFooter<\/ref.struct><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 25,
@@ -22231,7 +22531,7 @@
                   },
                   {
                     "key.annotated_decl" : "let isEquivalent: Bool<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isEquivalent<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 59,
@@ -22261,7 +22561,7 @@
                     "key.offset" : 4603
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> cachedSizes<\/decl.name>: [SizeKey<\/ref.struct> : CGSize<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 40,
@@ -22282,7 +22582,7 @@
                 "key.annotated_decl" : "func resetCachedSizes()<\/Declaration>",
                 "key.bodylength" : 50,
                 "key.bodyoffset" : 4702,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetCachedSizes<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 84,
@@ -22310,7 +22610,7 @@
                 "key.annotated_decl" : "func size(for info: Sizing<\/Type>.MeasureInfo<\/Type>, cache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> CGSize<\/Type><\/Declaration>",
                 "key.bodylength" : 1681,
                 "key.bodyoffset" : 4935,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, cache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1846,
@@ -22329,7 +22629,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let key: PresentationState<\/Type>.SizeKey<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.HeaderFooterState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> key<\/decl.name>: PresentationState<\/ref.class>.SizeKey<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 225,
@@ -22362,7 +22662,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 17602,
     "key.offset" : 0,
@@ -22379,7 +22679,7 @@
             "key.offset" : 161
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
         "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> AnyPresentationItemState<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -22401,7 +22701,7 @@
             "key.annotated_decl" : "var isDisplayed: Bool<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 201,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isDisplayed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 30,
@@ -22419,7 +22719,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func setAndPerform(isDisplayed: Bool<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setAndPerform<\/decl.name>(isDisplayed<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 37,
@@ -22442,7 +22742,7 @@
             "key.annotated_decl" : "var itemPosition: ItemPosition<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 9,
             "key.bodyoffset" : 292,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> itemPosition<\/decl.name>: ItemPosition<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 43,
@@ -22463,7 +22763,7 @@
             "key.annotated_decl" : "var anyModel: AnyItem<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 336,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyModel<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 30,
@@ -22483,7 +22783,7 @@
             "key.annotated_decl" : "var reorderingActions: ReorderingActions<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 395,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reorderingActions<\/decl.name>: ReorderingActions<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 49,
@@ -22503,7 +22803,7 @@
             "key.annotated_decl" : "var cellRegistrationInfo: (class: AnyClass<\/Type>, reuseIdentifier: String<\/Type>) { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 484,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> cellRegistrationInfo<\/decl.name>: (class<\/tuple.element.argument_label>: AnyClass<\/ref.typealias><\/tuple.element.type><\/tuple.element>, reuseIdentifier<\/tuple.element.argument_label>: String<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 75,
@@ -22521,7 +22821,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func dequeueAndPrepareCollectionViewCell(in collectionView: UICollectionView<\/Type>, for indexPath: IndexPath<\/Type>, environment: ListEnvironment<\/Type>) -> AnyItemCell<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> dequeueAndPrepareCollectionViewCell<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyItemCell<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 181,
@@ -22542,7 +22842,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func applyTo(cell anyCell: UICollectionViewCell<\/Type>, itemState: ListableUI.ItemState<\/Type>, reason: ApplyReason<\/Type>, environment: ListEnvironment<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyTo<\/decl.name>(cell<\/decl.var.parameter.argument_label> anyCell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, itemState<\/decl.var.parameter.argument_label>: ListableUI.ItemState<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 174,
@@ -22563,7 +22863,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func applyToVisibleCell(with environment: ListEnvironment<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyToVisibleCell<\/decl.name>(with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 59,
@@ -22584,7 +22884,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func setNew(item anyItem: AnyItem<\/Type>, reason: PresentationState<\/Type>.ItemUpdateReason<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setNew<\/decl.name>(item<\/decl.var.parameter.argument_label> anyItem<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: PresentationState<\/ref.class>.ItemUpdateReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 115,
@@ -22605,7 +22905,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func willDisplay(cell: UICollectionViewCell<\/Type>, in collectionView: UICollectionView<\/Type>, for indexPath: IndexPath<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> willDisplay<\/decl.name>(cell<\/decl.var.parameter.argument_label>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 110,
@@ -22626,7 +22926,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func didEndDisplay()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> didEndDisplay<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 20,
@@ -22644,7 +22944,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func wasRemoved(updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 50,
@@ -22667,7 +22967,7 @@
             "key.annotated_decl" : "var isSelected: Bool<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 1301,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
@@ -22685,7 +22985,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func set(isSelected: Bool<\/Type>, performCallbacks: Bool<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(isSelected<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, performCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 50,
@@ -22706,7 +23006,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func resetCachedSizes()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetCachedSizes<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 23,
@@ -22724,7 +23024,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func size(for info: Sizing<\/Type>.MeasureInfo<\/Type>, cache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> CGSize<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, cache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 138,
@@ -22745,7 +23045,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func moved(with result: Reordering<\/Type>.Result<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> moved<\/decl.name>(with<\/decl.var.parameter.argument_label> result<\/decl.var.parameter.name>: Reordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 43,
@@ -22780,7 +23080,7 @@
             "key.offset" : 1643
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
         "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> ItemContentCoordinatorDelegate<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -22800,7 +23100,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func coordinatorUpdated(for item: AnyItem<\/Type>, animated: Bool<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> coordinatorUpdated<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 60,
@@ -22835,7 +23135,7 @@
         ],
         "key.bodylength" : 174,
         "key.bodyoffset" : 1761,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemStateDependencies<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 205,
@@ -22850,7 +23150,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var reorderingDelegate: ReorderingActionsDelegate<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reorderingDelegate<\/decl.name>: ReorderingActionsDelegate<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 50,
@@ -22869,7 +23169,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var coordinatorDelegate: ItemContentCoordinatorDelegate<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: ItemContentCoordinatorDelegate<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 56,
@@ -22888,7 +23188,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var environmentProvider: () -> ListEnvironment<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> environmentProvider<\/decl.name>: () -> ListEnvironment<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 47,
@@ -22915,12 +23215,12 @@
         "key.bodyoffset" : 1968,
         "key.doc.column" : 13,
         "key.doc.declaration" : "final class PresentationState",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
-        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 11,
         "key.doc.name" : "PresentationState",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 14580,
@@ -22943,7 +23243,7 @@
                 "key.offset" : 1997
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> ItemUpdateReason<\/decl.name> : CaseIterable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -22969,7 +23269,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case moveFromList<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> moveFromList<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 12,
@@ -22995,7 +23295,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case updateFromList<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> updateFromList<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 14,
@@ -23021,7 +23321,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case updateFromItemCoordinator<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> updateFromItemCoordinator<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 25,
@@ -23047,7 +23347,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case noChange<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> noChange<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 8,
@@ -23087,7 +23387,7 @@
                 "key.offset" : 2191
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemState<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyPresentationItemState<\/ref.protocol> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
             "key.inheritedtypes" : [
               {
@@ -23113,7 +23413,7 @@
                     "key.offset" : 2176
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -23138,7 +23438,7 @@
                 "key.annotated_decl" : "var model: Item<\/Type><Content<\/Type>> { get }<\/Declaration>",
                 "key.bodylength" : 40,
                 "key.bodyoffset" : 2257,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> model<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 68,
@@ -23156,7 +23456,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let performsContentCallbacks: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 35,
@@ -23181,7 +23481,7 @@
                     "key.offset" : 2369
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> coordination<\/decl.name>: Coordination<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 31,
@@ -23202,7 +23502,7 @@
                 "key.annotated_decl" : "struct PresentationState<\/Type>.ItemState<\/Type><Content>.Coordination<\/Declaration>",
                 "key.bodylength" : 197,
                 "key.bodyoffset" : 2452,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> PresentationState<\/ref.class>.ItemState<\/ref.class><Content>.Coordination<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
                 "key.length" : 219,
@@ -23217,7 +23517,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var coordinator: Content<\/Type>.Coordinator<\/Type>?<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> coordinator<\/decl.name>: Content<\/ref.generic_type_param>.Coordinator<\/ref.associatedtype>?<\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 38,
@@ -23236,7 +23536,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let actions: ItemContentCoordinatorActions<\/Type><Content<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> actions<\/decl.name>: ItemContentCoordinatorActions<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 52,
@@ -23254,7 +23554,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "let info: ItemContentCoordinatorInfo<\/Type><Content<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: ItemContentCoordinatorInfo<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 46,
@@ -23277,7 +23577,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let reorderingActions: ReorderingActions<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> reorderingActions<\/decl.name>: ReorderingActions<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 40,
@@ -23300,7 +23600,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var itemPosition: ItemPosition<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> itemPosition<\/decl.name>: ItemPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 31,
@@ -23324,7 +23624,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let storage: Storage<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> storage<\/decl.name>: Storage<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
@@ -23344,7 +23644,7 @@
                 "key.annotated_decl" : "init(with model: Item<\/Type><Content<\/Type>>, dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, performsContentCallbacks: Bool<\/Type>)<\/Declaration>",
                 "key.bodylength" : 2865,
                 "key.bodyoffset" : 3012,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, dependencies<\/decl.var.parameter.argument_label>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 3064,
@@ -23358,7 +23658,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let storage: PresentationState<\/Type>.ItemState<\/Type><Content>.Storage<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> storage<\/decl.name>: PresentationState<\/ref.class>.ItemState<\/ref.class><Content>.Storage<\/ref.class><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 28,
@@ -23380,7 +23680,7 @@
                   },
                   {
                     "key.annotated_decl" : "let actions: ItemContentCoordinatorActions<\/Type><Content><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> actions<\/decl.name>: ItemContentCoordinatorActions<\/ref.class><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 406,
@@ -23398,7 +23698,7 @@
                   {
                     "key.annotated_decl" : "let info: ItemContentCoordinatorInfo<\/Type><Content><\/Declaration>",
                     "key.doc.comment" : "This is a temporary update callback, in case the initialization of the\ncoordinator causes an update to the item itself.",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: ItemContentCoordinatorInfo<\/ref.class><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 136,
@@ -23415,7 +23715,7 @@
                   },
                   {
                     "key.annotated_decl" : "let coordinator: Content.Coordinator?<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> coordinator<\/decl.name>: Content.Coordinator?<\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 115,
@@ -23442,14 +23742,14 @@
                     "key.doc.column" : 22,
                     "key.doc.comment" : "Now that the presentation state is entirely configured, set up the final\nupdate callback, which triggers a `setNew` call, alongside informing the\n`listView` that changes have occurred.",
                     "key.doc.declaration" : "weak var coordinatorDelegate: ListableUI.ItemContentCoordinatorDelegate?",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
-                    "key.doc.full_as_xml" : "coordinatorDelegate<\/Name>s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp<\/USR>weak var coordinatorDelegate: ListableUI.ItemContentCoordinatorDelegate?<\/Declaration>Now that the presentation state is entirely configured, set up the final update callback, which triggers a setNew<\/codeVoice> call, alongside informing the listView<\/codeVoice> that changes have occurred.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.doc.full_as_xml" : "coordinatorDelegate<\/Name>s:10ListableUI17PresentationStateC04ItemD0C4with12dependencies15updateCallbacks015performsContentI0AEy_xGAA0E0VyxG_AA0eD12DependenciesVAA06UpdateI0CSbtcfc19coordinatorDelegateL_AA0ek11CoordinatorO0_pSgvp<\/USR>weak var coordinatorDelegate: ListableUI.ItemContentCoordinatorDelegate?<\/Declaration>Now that the presentation state is entirely configured, set up the final update callback, which triggers a setNew<\/codeVoice> call, alongside informing the listView<\/codeVoice> that changes have occurred.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 156,
                     "key.doc.name" : "coordinatorDelegate",
                     "key.doc.type" : "Other",
                     "key.doclength" : 221,
                     "key.docoffset" : 4476,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: ItemContentCoordinatorDelegate<\/ref.protocol>?<\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 58,
@@ -23473,7 +23773,7 @@
                         "key.offset" : 4857
                       }
                     ],
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `self`<\/decl.name>: PresentationState<\/ref.class>.ItemState<\/ref.class><Content>?<\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 4,
@@ -23497,7 +23797,7 @@
                         "key.offset" : 4868
                       }
                     ],
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> coordinatorDelegate<\/decl.name>: ItemContentCoordinatorDelegate<\/ref.protocol>?<\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 19,
@@ -23521,7 +23821,7 @@
                         "key.offset" : 5444
                       }
                     ],
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `self`<\/decl.name>: PresentationState<\/ref.class>.ItemState<\/ref.class><Content>?<\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 4,
@@ -23560,7 +23860,7 @@
                   }
                 ],
                 "key.doc.comment" : "Now that we are set up, notify callbacks.",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> isDisplayed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 30,
@@ -23591,7 +23891,7 @@
                     "key.offset" : 6008
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasDisplayed<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 31,
@@ -23617,7 +23917,7 @@
                     "key.offset" : 6056
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasEndedDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 34,
@@ -23638,7 +23938,7 @@
                 "key.annotated_decl" : "func setAndPerform(isDisplayed: Bool<\/Type>)<\/Declaration>",
                 "key.bodylength" : 919,
                 "key.bodyoffset" : 6155,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setAndPerform<\/decl.name>(isDisplayed<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 959,
@@ -23666,7 +23966,7 @@
                 "key.annotated_decl" : "var anyModel: AnyItem<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 39,
                 "key.bodyoffset" : 7125,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyModel<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 64,
@@ -23689,7 +23989,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var cellRegistrationInfo: (class: AnyClass<\/Type>, reuseIdentifier: String<\/Type>)<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> cellRegistrationInfo<\/decl.name>: (class<\/tuple.element.argument_label>: AnyClass<\/ref.typealias><\/tuple.element.type><\/tuple.element>, reuseIdentifier<\/tuple.element.argument_label>: String<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 67,
@@ -23715,7 +24015,7 @@
                 "key.annotated_decl" : "func dequeueAndPrepareCollectionViewCell(in collectionView: UICollectionView<\/Type>, for indexPath: IndexPath<\/Type>, environment: ListEnvironment<\/Type>) -> AnyItemCell<\/Type><\/Declaration>",
                 "key.bodylength" : 581,
                 "key.bodyoffset" : 7475,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> dequeueAndPrepareCollectionViewCell<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyItemCell<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 789,
@@ -23734,7 +24034,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let anyCell: UICollectionViewCell<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> anyCell<\/decl.name>: UICollectionViewCell<\/ref.class><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 128,
@@ -23751,7 +24051,7 @@
                   },
                   {
                     "key.annotated_decl" : "let cell: ItemCell<\/Type><Content><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: ItemCell<\/ref.class><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 40,
@@ -23768,7 +24068,7 @@
                   },
                   {
                     "key.annotated_decl" : "let itemState: ItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> itemState<\/decl.name>: ItemState<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 48,
@@ -23793,7 +24093,7 @@
                 "key.annotated_decl" : "func applyTo(cell anyCell: UICollectionViewCell<\/Type>, itemState: ListableUI.ItemState<\/Type>, reason: ApplyReason<\/Type>, environment: ListEnvironment<\/Type>)<\/Declaration>",
                 "key.bodylength" : 967,
                 "key.bodyoffset" : 8271,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyTo<\/decl.name>(cell<\/decl.var.parameter.argument_label> anyCell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, itemState<\/decl.var.parameter.argument_label>: ListableUI.ItemState<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1164,
@@ -23812,7 +24112,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let cell: ItemCell<\/Type><Content><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: ItemCell<\/ref.class><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 40,
@@ -23829,7 +24129,7 @@
                   },
                   {
                     "key.annotated_decl" : "let applyInfo: ApplyItemContentInfo<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> applyInfo<\/decl.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 223,
@@ -23854,7 +24154,7 @@
                 "key.annotated_decl" : "func applyToVisibleCell(with environment: ListEnvironment<\/Type>)<\/Declaration>",
                 "key.bodylength" : 318,
                 "key.bodyoffset" : 9326,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> applyToVisibleCell<\/decl.name>(with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 388,
@@ -23882,7 +24182,7 @@
                 "key.annotated_decl" : "func setNew(item anyItem: AnyItem<\/Type>, reason: ItemUpdateReason<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>",
                 "key.bodylength" : 1373,
                 "key.bodyoffset" : 9768,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setNew<\/decl.name>(item<\/decl.var.parameter.argument_label> anyItem<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, reason<\/decl.var.parameter.argument_label>: ItemUpdateReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1479,
@@ -23901,7 +24201,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let old: Item<\/Type><Content><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Item<\/ref.struct><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 20,
@@ -23918,7 +24218,7 @@
                   },
                   {
                     "key.annotated_decl" : "let new: Item<\/Type><Content><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Item<\/ref.struct><Content><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 35,
@@ -23943,7 +24243,7 @@
                 "key.annotated_decl" : "func willDisplay(cell anyCell: UICollectionViewCell<\/Type>, in collectionView: UICollectionView<\/Type>, for indexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 127,
                 "key.bodyoffset" : 11288,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> willDisplay<\/decl.name>(cell<\/decl.var.parameter.argument_label> anyCell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 256,
@@ -23962,7 +24262,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let cell: (ItemCell<\/Type><Content>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: (ItemCell<\/ref.class><Content>)<\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 42,
@@ -23987,7 +24287,7 @@
                 "key.annotated_decl" : "func didEndDisplay()<\/Declaration>",
                 "key.bodylength" : 58,
                 "key.bodyoffset" : 11464,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> didEndDisplay<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 89,
@@ -24012,7 +24312,7 @@
                 "key.annotated_decl" : "func wasRemoved(updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>",
                 "key.bodylength" : 237,
                 "key.bodyoffset" : 11601,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 298,
@@ -24040,7 +24340,7 @@
                 "key.annotated_decl" : "var isSelected: Bool<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 51,
                 "key.bodyoffset" : 11879,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 74,
@@ -24065,7 +24365,7 @@
                 "key.annotated_decl" : "func set(isSelected: Bool<\/Type>, performCallbacks: Bool<\/Type>)<\/Declaration>",
                 "key.bodylength" : 1473,
                 "key.bodyoffset" : 12017,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(isSelected<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, performCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1534,
@@ -24094,7 +24394,7 @@
                 "key.bodylength" : 912,
                 "key.bodyoffset" : 13582,
                 "key.doc.comment" : "Schedule the caller-provided callbacks to happen after one runloop. Why?\n\nBecause this method is called from within `UICollectionViewDelegate` callbacks,\nThis delay gives the `UICollectionView` time to schedule any necessary animations\nfor changes to the highlight and selection state – otherwise, these animations get\nstuck behind the call to the `onSelect` or `onDeselect` blocks, which creates the appearance\nof a laggy UI if these callbacks are slow.",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateCoordinatorWithStateChange<\/decl.name>(old<\/decl.var.parameter.argument_label>: State<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: State<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 986,
@@ -24122,7 +24422,7 @@
                     "key.offset" : 14513
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> cachedSizes<\/decl.name>: [SizeKey<\/ref.struct> : CGSize<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 40,
@@ -24143,7 +24443,7 @@
                 "key.annotated_decl" : "func resetCachedSizes()<\/Declaration>",
                 "key.bodylength" : 50,
                 "key.bodyoffset" : 14612,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetCachedSizes<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 84,
@@ -24171,7 +24471,7 @@
                 "key.annotated_decl" : "func size(for info: Sizing<\/Type>.MeasureInfo<\/Type>, cache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> CGSize<\/Type><\/Declaration>",
                 "key.bodylength" : 1530,
                 "key.bodyoffset" : 14845,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, cache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1695,
@@ -24190,7 +24490,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let key: PresentationState<\/Type>.SizeKey<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> key<\/decl.name>: PresentationState<\/ref.class>.SizeKey<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 225,
@@ -24215,7 +24515,7 @@
                 "key.annotated_decl" : "func moved(with result: Reordering<\/Type>.Result<\/Type>)<\/Declaration>",
                 "key.bodylength" : 63,
                 "key.bodyoffset" : 16447,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> moved<\/decl.name>(with<\/decl.var.parameter.argument_label> result<\/decl.var.parameter.name>: Reordering<\/ref.struct>.Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 117,
@@ -24252,7 +24552,7 @@
         "key.annotated_decl" : "final class ItemState<Content> : AnyPresentationItemState<\/Type> where Content : ItemContent<\/Type><\/Declaration>",
         "key.bodylength" : 1039,
         "key.bodyoffset" : 16561,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemState<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyPresentationItemState<\/ref.protocol> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1079,
@@ -24275,7 +24575,7 @@
             ],
             "key.bodylength" : 881,
             "key.bodyoffset" : 16587,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Storage<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 897,
@@ -24290,7 +24590,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var didSetState: (State<\/Type>, State<\/Type>) -> ()<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> didSetState<\/decl.name>: (State<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, State<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 52,
@@ -24311,7 +24611,7 @@
                 "key.annotated_decl" : "var model: Item<\/Type><Content<\/Type>> { get set }<\/Declaration>",
                 "key.bodylength" : 299,
                 "key.bodyoffset" : 16702,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> model<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 327,
@@ -24332,7 +24632,7 @@
                 "key.annotated_decl" : "var state: State<\/Type> { get set }<\/Declaration>",
                 "key.bodylength" : 213,
                 "key.bodyoffset" : 17039,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> state<\/decl.name>: State<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 233,
@@ -24353,7 +24653,7 @@
                 "key.annotated_decl" : "init(_ model: Item<\/Type><Content<\/Type>>)<\/Declaration>",
                 "key.bodylength" : 152,
                 "key.bodyoffset" : 17310,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 192,
@@ -24395,7 +24695,7 @@
                 "key.offset" : 17503
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> State<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -24415,7 +24715,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var isSelected: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
@@ -24434,7 +24734,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var visibleCell: ItemCell<\/Type><Content<\/Type>>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.ItemState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> visibleCell<\/decl.name>: ItemCell<\/ref.class><Content<\/ref.generic_type_param>>?<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 36,
@@ -24463,7 +24763,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 1407,
     "key.offset" : 0,
@@ -24474,12 +24774,12 @@
         "key.bodyoffset" : 160,
         "key.doc.column" : 13,
         "key.doc.declaration" : "final class PresentationState",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
-        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 11,
         "key.doc.name" : "PresentationState",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1275,
@@ -24508,7 +24808,7 @@
             ],
             "key.bodylength" : 1192,
             "key.bodyoffset" : 211,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> RefreshControlState<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 1224,
@@ -24530,7 +24830,7 @@
                     "key.offset" : 220
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> model<\/decl.name>: RefreshControl<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 26,
@@ -24556,7 +24856,7 @@
                     "key.offset" : 262
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> view<\/decl.name>: UIRefreshControl<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 27,
@@ -24584,7 +24884,7 @@
                 ],
                 "key.bodylength" : 196,
                 "key.bodyoffset" : 361,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: RefreshControl<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 237,
@@ -24607,7 +24907,7 @@
                 "key.annotated_decl" : "func update(with control: RefreshControl<\/Type>)<\/Declaration>",
                 "key.bodylength" : 662,
                 "key.bodyoffset" : 628,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> control<\/decl.var.parameter.name>: RefreshControl<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 715,
@@ -24637,7 +24937,7 @@
                 ],
                 "key.bodylength" : 44,
                 "key.bodyoffset" : 1353,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.RefreshControl.swift",
                 "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> refreshControlChanged<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 83,
@@ -24668,7 +24968,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 5203,
     "key.offset" : 0,
@@ -24679,12 +24979,12 @@
         "key.bodyoffset" : 157,
         "key.doc.column" : 13,
         "key.doc.declaration" : "final class PresentationState",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
-        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 11,
         "key.doc.name" : "PresentationState",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 5074,
@@ -24707,7 +25007,7 @@
             ],
             "key.bodylength" : 5007,
             "key.bodyoffset" : 192,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SectionState<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 5032,
@@ -24722,7 +25022,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var model: Section<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> model<\/decl.name>: Section<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
@@ -24741,7 +25041,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var header: HeaderFooterViewStatePair<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> header<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 48,
@@ -24760,7 +25060,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var footer: HeaderFooterViewStatePair<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> footer<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 48,
@@ -24779,7 +25079,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var items: [AnyPresentationItemState<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [AnyPresentationItemState<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 38,
@@ -24798,7 +25098,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let performsContentCallbacks: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 35,
@@ -24818,7 +25118,7 @@
                 "key.annotated_decl" : "init(with model: Section<\/Type>, dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, performsContentCallbacks: Bool<\/Type>)<\/Declaration>",
                 "key.bodylength" : 922,
                 "key.bodyoffset" : 662,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> model<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, dependencies<\/decl.var.parameter.argument_label>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1115,
@@ -24841,7 +25141,7 @@
                 "key.annotated_decl" : "func removeItem(at index: Int<\/Type>)<\/Declaration>",
                 "key.bodylength" : 97,
                 "key.bodyoffset" : 1644,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> removeItem<\/decl.name>(at<\/decl.var.parameter.argument_label> index<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 139,
@@ -24864,7 +25164,7 @@
                 "key.annotated_decl" : "func insert(item: AnyPresentationItemState<\/Type>, at index: Int<\/Type>)<\/Declaration>",
                 "key.bodylength" : 118,
                 "key.bodyoffset" : 1830,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> insert<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> index<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 189,
@@ -24887,7 +25187,7 @@
                 "key.annotated_decl" : "func update(with oldSection: Section<\/Type>, new newSection: Section<\/Type>, changes: SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>.ItemChanges<\/Type>, dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>",
                 "key.bodylength" : 1578,
                 "key.bodyoffset" : 2261,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> oldSection<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label> newSection<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, changes<\/decl.var.parameter.argument_label>: SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>>.ItemChanges<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, dependencies<\/decl.var.parameter.argument_label>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1873,
@@ -24910,7 +25210,7 @@
                 "key.annotated_decl" : "func wasRemoved(updateCallbacks: UpdateCallbacks<\/Type>)<\/Declaration>",
                 "key.bodylength" : 126,
                 "key.bodyoffset" : 3918,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 187,
@@ -24933,7 +25233,7 @@
                 "key.annotated_decl" : "static func headerFooterState(with current: AnyPresentationHeaderFooterState<\/Type>?, new: AnyHeaderFooter<\/Type>?, performsContentCallbacks: Bool<\/Type>) -> AnyPresentationHeaderFooterState<\/Type>?<\/Declaration>",
                 "key.bodylength" : 901,
                 "key.bodyoffset" : 4292,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.SectionState.swift",
                 "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> headerFooterState<\/decl.name>(with<\/decl.var.parameter.argument_label> current<\/decl.var.parameter.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.function.returntype><\/decl.function.method.static>",
                 "key.kind" : "source.lang.swift.decl.function.method.static",
                 "key.length" : 1131,
@@ -24964,9 +25264,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 14287,
+    "key.length" : 14249,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -24984,14 +25284,14 @@
         "key.doc.column" : 13,
         "key.doc.comment" : "A class used to manage the \"live\" \/ mutable state of the visible items in the list,\nwhich is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).",
         "key.doc.declaration" : "final class PresentationState",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
-        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 11,
         "key.doc.name" : "PresentationState",
         "key.doc.type" : "Class",
         "key.doclength" : 218,
         "key.docoffset" : 96,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 9029,
@@ -25014,7 +25314,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var refreshControl: RefreshControlState<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> refreshControl<\/decl.name>: RefreshControlState<\/ref.class>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
@@ -25033,7 +25333,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var header: HeaderFooterViewStatePair<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> header<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 48,
@@ -25052,7 +25352,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var footer: HeaderFooterViewStatePair<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> footer<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 48,
@@ -25071,7 +25371,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var overscrollFooter: HeaderFooterViewStatePair<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 58,
@@ -25090,7 +25390,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var sections: [PresentationState<\/Type>.SectionState<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sections<\/decl.name>: [PresentationState<\/ref.class>.SectionState<\/ref.class>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 47,
@@ -25114,7 +25414,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var performsContentCallbacks: Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 42,
@@ -25140,7 +25440,7 @@
                 "key.offset" : 735
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> containsAllItems<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
@@ -25166,7 +25466,7 @@
                 "key.offset" : 785
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> contentIdentifier<\/decl.name>: AnyHashable<\/ref.struct>?<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 36,
@@ -25192,7 +25492,7 @@
                 "key.offset" : 844
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> itemMeasurementCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 46,
@@ -25217,7 +25517,7 @@
                 "key.offset" : 903
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> headerFooterMeasurementCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 54,
@@ -25245,7 +25545,7 @@
             "key.annotated_decl" : "init()<\/Declaration>",
             "key.bodylength" : 158,
             "key.bodyoffset" : 1038,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 171,
@@ -25276,7 +25576,7 @@
             "key.annotated_decl" : "var sectionModels: [Section<\/Type>] { get }<\/Declaration>",
             "key.bodylength" : 259,
             "key.bodyoffset" : 1285,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sectionModels<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 291,
@@ -25296,7 +25596,7 @@
             "key.annotated_decl" : "var selectedItems: [AnyPresentationItemState<\/Type>] { get }<\/Declaration>",
             "key.bodylength" : 255,
             "key.bodyoffset" : 1603,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> selectedItems<\/decl.name>: [AnyPresentationItemState<\/ref.protocol>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 304,
@@ -25313,7 +25613,7 @@
           },
           {
             "key.annotated_decl" : "let items: [[AnyPresentationItemState<\/Type>]]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> items<\/decl.name>: [[AnyPresentationItemState<\/ref.protocol>]]<\/decl.var.type><\/decl.var.local>",
             "key.kind" : "source.lang.swift.decl.var.local",
             "key.length" : 196,
@@ -25333,7 +25633,7 @@
             "key.annotated_decl" : "var selectedIndexPaths: [IndexPath<\/Type>] { get }<\/Declaration>",
             "key.bodylength" : 338,
             "key.bodyoffset" : 1907,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> selectedIndexPaths<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 377,
@@ -25350,7 +25650,7 @@
           },
           {
             "key.annotated_decl" : "let indexes: [[IndexPath<\/Type>]]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexes<\/decl.name>: [[IndexPath<\/ref.struct>]]<\/decl.var.type><\/decl.var.local>",
             "key.kind" : "source.lang.swift.decl.var.local",
             "key.length" : 277,
@@ -25370,7 +25670,7 @@
             "key.annotated_decl" : "func headerFooter(of kind: SupplementaryKind<\/Type>, in section: Int<\/Type>) -> HeaderFooterViewStatePair<\/Type><\/Declaration>",
             "key.bodylength" : 320,
             "key.bodyoffset" : 2355,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> headerFooter<\/decl.name>(of<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> HeaderFooterViewStatePair<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 420,
@@ -25393,7 +25693,7 @@
             "key.annotated_decl" : "func item(at indexPath: IndexPath<\/Type>) -> AnyPresentationItemState<\/Type><\/Declaration>",
             "key.bodylength" : 138,
             "key.bodyoffset" : 2755,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> item<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyPresentationItemState<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 208,
@@ -25407,7 +25707,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let section: PresentationState<\/Type>.SectionState<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 46,
@@ -25424,7 +25724,7 @@
               },
               {
                 "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 40,
@@ -25454,7 +25754,7 @@
             "key.annotated_decl" : "func sections(at indexes: [Int<\/Type>]) -> [SectionState<\/Type>]<\/Declaration>",
             "key.bodylength" : 173,
             "key.bodyoffset" : 2961,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> sections<\/decl.name>(at<\/decl.var.parameter.argument_label> indexes<\/decl.var.parameter.name>: [Int<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> [SectionState<\/ref.class>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 231,
@@ -25473,7 +25773,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var sections: [SectionState<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sections<\/decl.name>: [SectionState<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 34,
@@ -25513,7 +25813,7 @@
             ],
             "key.bodylength" : 411,
             "key.bodyoffset" : 3188,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastIndexPath<\/decl.name>: IndexPath<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 448,
@@ -25530,7 +25830,7 @@
           },
           {
             "key.annotated_decl" : "let nonEmptySections: [(index: Int<\/Type>, section: SectionState<\/Type>)]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> nonEmptySections<\/decl.name>: [(index<\/tuple.element.argument_label>: Int<\/ref.struct><\/tuple.element.type><\/tuple.element>, section<\/tuple.element.argument_label>: SectionState<\/ref.class><\/tuple.element.type><\/tuple.element>)<\/tuple>]<\/decl.var.type><\/decl.var.local>",
             "key.kind" : "source.lang.swift.decl.var.local",
             "key.length" : 187,
@@ -25557,7 +25857,7 @@
             ],
             "key.bodylength" : 327,
             "key.bodyoffset" : 3696,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> indexPath<\/decl.name>(for<\/decl.var.parameter.argument_label> itemToFind<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 405,
@@ -25587,7 +25887,7 @@
             ],
             "key.bodylength" : 244,
             "key.bodyoffset" : 4120,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> forEachItem<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 322,
@@ -25618,7 +25918,7 @@
             "key.annotated_decl" : "func moveItem(from: IndexPath<\/Type>, to: IndexPath<\/Type>)<\/Declaration>",
             "key.bodylength" : 193,
             "key.bodyoffset" : 4474,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> moveItem<\/decl.name>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 247,
@@ -25632,7 +25932,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 30,
@@ -25669,7 +25969,7 @@
             ],
             "key.bodylength" : 86,
             "key.bodyoffset" : 4772,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> remove<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyPresentationItemState<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 158,
@@ -25697,7 +25997,7 @@
             "key.annotated_decl" : "func remove(item itemToRemove: AnyPresentationItemState<\/Type>) -> IndexPath<\/Type>?<\/Declaration>",
             "key.bodylength" : 224,
             "key.bodyoffset" : 4946,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> remove<\/decl.name>(item<\/decl.var.parameter.argument_label> itemToRemove<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 302,
@@ -25725,7 +26025,7 @@
             "key.annotated_decl" : "func insert(item: AnyPresentationItemState<\/Type>, at indexPath: IndexPath<\/Type>)<\/Declaration>",
             "key.bodylength" : 85,
             "key.bodyoffset" : 5257,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> insert<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 162,
@@ -25756,7 +26056,7 @@
             "key.annotated_decl" : "func resetAllCachedSizes()<\/Declaration>",
             "key.bodylength" : 156,
             "key.bodyoffset" : 5432,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> resetAllCachedSizes<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 189,
@@ -25787,7 +26087,7 @@
             "key.annotated_decl" : "func update(with diff: SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>, slice: Content<\/Type>.Slice<\/Type>, dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, loggable: SignpostLoggable<\/Type>?)<\/Declaration>",
             "key.bodylength" : 2205,
             "key.bodyoffset" : 5915,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> diff<\/decl.var.parameter.name>: SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, slice<\/decl.var.parameter.argument_label>: Content<\/ref.struct>.Slice<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, dependencies<\/decl.var.parameter.argument_label>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, loggable<\/decl.var.parameter.argument_label>: SignpostLoggable<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 2465,
@@ -25817,7 +26117,7 @@
             ],
             "key.bodylength" : 463,
             "key.bodyoffset" : 8223,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateRefreshControl<\/decl.name>(with<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: RefreshControl<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 547,
@@ -25853,7 +26153,7 @@
                 "key.offset" : 8768
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> registeredCellObjectIdentifiers<\/decl.name>: Set<\/ref.struct><ObjectIdentifier<\/ref.struct>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 67,
@@ -25874,7 +26174,7 @@
             "key.annotated_decl" : "func registerCell(for item: AnyPresentationItemState<\/Type>, in view: UICollectionView<\/Type>)<\/Declaration>",
             "key.bodylength" : 405,
             "key.bodyoffset" : 8941,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> registerCell<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 494,
@@ -25888,7 +26188,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let info: (class: AnyClass<\/Type>, reuseIdentifier: String<\/Type>)<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: (class<\/tuple.element.argument_label>: AnyClass<\/ref.typealias><\/tuple.element.type><\/tuple.element>, reuseIdentifier<\/tuple.element.argument_label>: String<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 36,
@@ -25905,7 +26205,7 @@
               },
               {
                 "key.annotated_decl" : "let identifier: ObjectIdentifier<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 45,
@@ -25936,12 +26236,12 @@
         "key.bodyoffset" : 9381,
         "key.doc.column" : 13,
         "key.doc.declaration" : "final class PresentationState",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
-        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 11,
         "key.doc.name" : "PresentationState",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 881,
@@ -25964,7 +26264,7 @@
                 "key.offset" : 9410
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> UpdateReason<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -25990,7 +26290,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case scrolledDown<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrolledDown<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 12,
@@ -26016,7 +26316,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case didEndDecelerating<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> didEndDecelerating<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 18,
@@ -26042,7 +26342,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case scrolledToTop<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrolledToTop<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 13,
@@ -26068,7 +26368,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case contentChanged(animated: Bool<\/Type>, identifierChanged: Bool<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> contentChanged<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, identifierChanged<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 57,
@@ -26097,7 +26397,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case transitionedToBounds(isEmpty: Bool<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> transitionedToBounds<\/decl.name>(isEmpty<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 36,
@@ -26126,7 +26426,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "case programaticScrollDownTo(IndexPath<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> programaticScrollDownTo<\/decl.name>(IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 34,
@@ -26151,7 +26451,7 @@
                 "key.annotated_decl" : "var animated: Bool<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 474,
                 "key.bodyoffset" : 9750,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> animated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 496,
@@ -26182,12 +26482,12 @@
         "key.bodyoffset" : 10265,
         "key.doc.column" : 13,
         "key.doc.declaration" : "final class PresentationState",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
-        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 11,
         "key.doc.name" : "PresentationState",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 204,
@@ -26210,7 +26510,7 @@
                 "key.offset" : 10287
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> SizeKey<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -26230,7 +26530,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var width: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
@@ -26249,7 +26549,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var height: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> height<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 20,
@@ -26268,7 +26568,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var layoutDirection: LayoutDirection<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutDirection<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 37,
@@ -26287,7 +26587,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var sizing: Sizing<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
@@ -26315,41 +26615,41 @@
       },
       {
         "key.annotated_decl" : "final class PresentationState<\/Declaration>",
-        "key.bodylength" : 3813,
+        "key.bodylength" : 3775,
         "key.bodyoffset" : 10472,
         "key.doc.column" : 13,
         "key.doc.declaration" : "final class PresentationState",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
-        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.doc.full_as_xml" : "PresentationState<\/Name>s:10ListableUI17PresentationStateC<\/USR>final class PresentationState<\/Declaration>A class used to manage the “live” \/ mutable state of the visible items in the list, which is persistent across diffs of content (instances are only created or destroyed when an item enters or leaves the list).<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 11,
         "key.doc.name" : "PresentationState",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PresentationState<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 3843,
+        "key.length" : 3805,
         "key.name" : "PresentationState",
         "key.namelength" : 17,
         "key.nameoffset" : 10453,
         "key.offset" : 10443,
         "key.parsed_declaration" : "extension PresentationState",
-        "key.parsed_scope.end" : 439,
+        "key.parsed_scope.end" : 438,
         "key.parsed_scope.start" : 352,
         "key.substructure" : [
           {
             "key.annotated_decl" : "func toListLayoutContent(defaults: ListLayoutDefaults<\/Type>, environment: ListEnvironment<\/Type>) -> ListLayoutContent<\/Type><\/Declaration>",
-            "key.bodylength" : 3672,
+            "key.bodylength" : 3634,
             "key.bodyoffset" : 10611,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Presentation State\/PresentationState.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> toListLayoutContent<\/decl.name>(defaults<\/decl.var.parameter.argument_label>: ListLayoutDefaults<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 3807,
+            "key.length" : 3769,
             "key.name" : "toListLayoutContent(defaults:environment:)",
             "key.namelength" : 102,
             "key.nameoffset" : 10482,
             "key.offset" : 10477,
             "key.parsed_declaration" : "func toListLayoutContent(\n    defaults: ListLayoutDefaults,\n    environment : ListEnvironment\n) -> ListLayoutContent",
-            "key.parsed_scope.end" : 438,
+            "key.parsed_scope.end" : 437,
             "key.parsed_scope.start" : 354,
             "key.substructure" : [
 
@@ -26366,7 +26666,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 1941,
     "key.offset" : 0,
@@ -26383,7 +26683,7 @@
         ],
         "key.bodylength" : 1789,
         "key.bodyoffset" : 150,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReusableViewCache<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 1815,
@@ -26405,7 +26705,7 @@
                 "key.offset" : 155
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> views<\/decl.name>: [String<\/ref.struct> : [AnyObject<\/ref.typealias>]]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 38,
@@ -26426,7 +26726,7 @@
             "key.annotated_decl" : "init()<\/Declaration>",
             "key.bodylength" : 0,
             "key.bodyoffset" : 219,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 9,
@@ -26446,7 +26746,7 @@
             "key.annotated_decl" : "func count<Content>(for reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>>) -> Int<\/Type><\/Declaration>",
             "key.bodylength" : 106,
             "key.bodyoffset" : 310,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> count<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(for<\/decl.var.parameter.argument_label> reuseIdentifier<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 187,
@@ -26460,7 +26760,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Content<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 7,
@@ -26477,7 +26777,7 @@
               },
               {
                 "key.annotated_decl" : "let views: [AnyObject<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> views<\/decl.name>: [AnyObject<\/ref.typealias>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 64,
@@ -26507,7 +26807,7 @@
             "key.annotated_decl" : "func push<Content, View>(_ view: View<\/Type>, with reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>>) where View : AnyObject<\/Declaration>",
             "key.bodylength" : 311,
             "key.bodyoffset" : 529,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> push<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>, View<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: View<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> reuseIdentifier<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> View : AnyObject<\/decl.generic_type_requirement><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 414,
@@ -26521,7 +26821,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Content<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 7,
@@ -26545,7 +26845,7 @@
                     "key.offset" : 450
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "View<\/decl.generic_type_param.name> : AnyObject<\/ref.typealias><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -26567,7 +26867,7 @@
               },
               {
                 "key.annotated_decl" : "var views: [AnyObject<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> views<\/decl.name>: [AnyObject<\/ref.typealias>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 64,
@@ -26597,7 +26897,7 @@
             "key.annotated_decl" : "func pop<Content, View>(with reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>>, _ create: () -> View<\/Type>) -> View<\/Type> where View : AnyObject<\/Declaration>",
             "key.bodylength" : 275,
             "key.bodyoffset" : 968,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> pop<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>, View<\/decl.generic_type_param.name><\/decl.generic_type_param>>(with<\/decl.var.parameter.argument_label> reuseIdentifier<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> create<\/decl.var.parameter.name>: () -> View<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> View<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> View : AnyObject<\/decl.generic_type_requirement><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 393,
@@ -26611,7 +26911,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Content<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 7,
@@ -26635,7 +26935,7 @@
                     "key.offset" : 873
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "View<\/decl.generic_type_param.name> : AnyObject<\/ref.typealias><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -26657,7 +26957,7 @@
               },
               {
                 "key.annotated_decl" : "var views: [AnyObject<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> views<\/decl.name>: [AnyObject<\/ref.typealias>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 64,
@@ -26687,7 +26987,7 @@
             "key.annotated_decl" : "func use<Content, View, Result>(with reuseIdentifier: ReuseIdentifier<\/Type><Content<\/Type>>, create: () -> View<\/Type>, _ use: (View<\/Type>) -> Result<\/Type>) -> Result<\/Type> where View : AnyObject<\/Declaration>",
             "key.bodylength" : 532,
             "key.bodyoffset" : 1405,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> use<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>, View<\/decl.generic_type_param.name><\/decl.generic_type_param>, Result<\/decl.generic_type_param.name><\/decl.generic_type_param>>(with<\/decl.var.parameter.argument_label> reuseIdentifier<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, create<\/decl.var.parameter.argument_label>: () -> View<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> use<\/decl.var.parameter.name>: (View<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Result<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Result<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> View : AnyObject<\/decl.generic_type_requirement><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 684,
@@ -26701,7 +27001,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Content<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 7,
@@ -26725,7 +27025,7 @@
                     "key.offset" : 1276
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "View<\/decl.generic_type_param.name> : AnyObject<\/ref.typealias><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -26747,7 +27047,7 @@
               },
               {
                 "key.annotated_decl" : "Result<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "Result<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 6,
@@ -26764,7 +27064,7 @@
               },
               {
                 "key.annotated_decl" : "let views: [AnyObject<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReusableViewCache.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> views<\/decl.name>: [AnyObject<\/ref.typealias>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 64,
@@ -26797,7 +27097,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 1400,
     "key.offset" : 0,
@@ -26812,7 +27112,7 @@
             "key.offset" : 98
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
         "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifiers<\/decl.name>: [ObjectIdentifier<\/ref.struct> : Any<\/syntaxtype.keyword>]<\/decl.var.type><\/decl.var.global>",
         "key.kind" : "source.lang.swift.decl.var.global",
         "key.length" : 46,
@@ -26847,7 +27147,7 @@
             "key.offset" : 194
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReuseIdentifier<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : Hashable<\/ref.protocol><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -26866,7 +27166,7 @@
         "key.substructure" : [
           {
             "key.annotated_decl" : "Element<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
             "key.fully_annotated_decl" : "Element<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 7,
@@ -26894,7 +27194,7 @@
             "key.annotated_decl" : "static func identifier(for element: Element<\/Type>.Type) -> ReuseIdentifier<\/Type><Element<\/Type>><\/Declaration>",
             "key.bodylength" : 352,
             "key.bodyoffset" : 342,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> identifier<\/decl.name>(for<\/decl.var.parameter.argument_label> element<\/decl.var.parameter.name>: Element<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ReuseIdentifier<\/ref.class><Element<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 437,
@@ -26913,7 +27213,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let typeIdentifier: ObjectIdentifier<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> typeIdentifier<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 46,
@@ -26936,7 +27236,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let stringValue: String<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> stringValue<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 24,
@@ -26954,7 +27254,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let identifier: ObjectIdentifier<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifier<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -26977,7 +27277,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let hash: Int<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> hash<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 14,
@@ -27017,7 +27317,7 @@
             ],
             "key.bodylength" : 236,
             "key.bodyoffset" : 869,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 249,
@@ -27031,7 +27331,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var hasher: Hasher<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> hasher<\/decl.name>: Hasher<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 21,
@@ -27094,7 +27394,7 @@
               }
             ],
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: ReuseIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 106,
@@ -27604,7 +27904,7 @@
               }
             ],
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/ReuseIdentifier.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 82,
@@ -27640,7 +27940,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 7686,
     "key.offset" : 0,
@@ -27674,8 +27974,8 @@
             "Para" : "Thus, we always provide this container supplementary view – and swap the content of the header or footer in or out as needed as it changes. As mentioned above, if there is no actual header or footer to show, the view has zero height."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
-        "key.doc.full_as_xml" : "SupplementaryContainerView<\/Name>c:@M@ListableUI@objc(cs)SupplementaryContainerView<\/USR>final class SupplementaryContainerView : UICollectionReusableView<\/Declaration>The supplementary view provided to the UICollectionView, which is used to contain every actual header and footer view within the list.<\/Para><\/Abstract>Regardless of if a section has a header or footer provided by the developer, we always return a supplementary view – if there’s no header or footer, it has zero height.<\/Para>]]><\/rawHTML>Why this extra layer of indirection?]]><\/rawHTML>Within collection views, supplementary views (how you model headers, footers) are attached to individual index paths. So, Listable models headers and footers as attached to (0,0) for list headers and footers, and (sectionIndex, 0) for section headers and footers. All good so far.<\/Para>The problem arises when you want to swap out a header or footer without changing the row at the (x, 0) index path. The collection view does not know to re-query for those associated headers, because we didn’t actually reload or change that (x, 0) item.<\/Para>Thus, we always provide this container supplementary view – and swap the content of the header or footer in or out as needed as it changes. As mentioned above, if there is no actual header or footer to show, the view has zero height.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+        "key.doc.full_as_xml" : "SupplementaryContainerView<\/Name>c:@M@ListableUI@objc(cs)SupplementaryContainerView<\/USR>final class SupplementaryContainerView : UICollectionReusableView<\/Declaration>The supplementary view provided to the UICollectionView, which is used to contain every actual header and footer view within the list.<\/Para><\/Abstract>Regardless of if a section has a header or footer provided by the developer, we always return a supplementary view – if there’s no header or footer, it has zero height.<\/Para>]]><\/rawHTML>Why this extra layer of indirection?]]><\/rawHTML>Within collection views, supplementary views (how you model headers, footers) are attached to individual index paths. So, Listable models headers and footers as attached to (0,0) for list headers and footers, and (sectionIndex, 0) for section headers and footers. All good so far.<\/Para>The problem arises when you want to swap out a header or footer without changing the row at the (x, 0) index path. The collection view does not know to re-query for those associated headers, because we didn’t actually reload or change that (x, 0) item.<\/Para>Thus, we always provide this container supplementary view – and swap the content of the header or footer in or out as needed as it changes. As mentioned above, if there is no actual header or footer to show, the view has zero height.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 35,
         "key.doc.name" : "SupplementaryContainerView",
         "key.doc.type" : "Class",
@@ -27688,7 +27988,7 @@
             "key.offset" : 1345
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SupplementaryContainerView<\/decl.name> : UICollectionReusableView<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -27716,7 +28016,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "static let reuseIdentifier: String<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> reuseIdentifier<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 66,
@@ -27741,7 +28041,7 @@
             "key.annotated_decl" : "static func register(in collectionView: UICollectionView<\/Type>, for kind: String<\/Type>)<\/Declaration>",
             "key.bodylength" : 215,
             "key.bodyoffset" : 1596,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> register<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 298,
@@ -27764,7 +28064,7 @@
             "key.annotated_decl" : "static func dequeue(in collectionView: UICollectionView<\/Type>, for kind: String<\/Type>, at indexPath: IndexPath<\/Type>, reuseCache: ReusableViewCache<\/Type>, environment: ListEnvironment<\/Type>) -> SupplementaryContainerView<\/Type><\/Declaration>",
             "key.bodylength" : 358,
             "key.bodyoffset" : 2068,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> dequeue<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, reuseCache<\/decl.var.parameter.argument_label>: ReusableViewCache<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, environment<\/decl.var.parameter.argument_label>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> SupplementaryContainerView<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 605,
@@ -27778,7 +28078,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let view: SupplementaryContainerView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: SupplementaryContainerView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 230,
@@ -27811,7 +28111,7 @@
             "key.annotated_decl" : "var headerFooter: AnyPresentationHeaderFooterState<\/Type>? { get set }<\/Declaration>",
             "key.bodylength" : 705,
             "key.bodyoffset" : 2531,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> headerFooter<\/decl.name>: AnyPresentationHeaderFooterState<\/ref.protocol>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 760,
@@ -27829,7 +28129,7 @@
           },
           {
             "key.annotated_decl" : "let cache: ReusableViewCache<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.local>",
             "key.kind" : "source.lang.swift.decl.var.local",
             "key.length" : 28,
@@ -27855,14 +28155,14 @@
                 "Para" : "We use IUOs to avoid having to unwrap the values at each call site."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
-            "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI26SupplementaryContainerViewC11environmentAA15ListEnvironmentVSgvp<\/USR>var environment: ListEnvironment!<\/Declaration>Note: Using implicitly unwrapped optionals because we cannot do initializer injection in this type – UICollectionView<\/codeVoice> calls init(frame:)<\/codeVoice>, we must use property injection instead.<\/Para><\/Abstract>We use IUOs to avoid having to unwrap the values at each call site.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI26SupplementaryContainerViewC11environmentAA15ListEnvironmentVSgvp<\/USR>var environment: ListEnvironment!<\/Declaration>Note: Using implicitly unwrapped optionals because we cannot do initializer injection in this type – UICollectionView<\/codeVoice> calls init(frame:)<\/codeVoice>, we must use property injection instead.<\/Para><\/Abstract>We use IUOs to avoid having to unwrap the values at each call site.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 106,
             "key.doc.name" : "environment",
             "key.doc.type" : "Other",
             "key.doclength" : 288,
             "key.docoffset" : 3247,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct>!<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 34,
@@ -27881,7 +28181,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var reuseCache: ReusableViewCache<\/Type>!<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reuseCache<\/decl.name>: ReusableViewCache<\/ref.class>!<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 35,
@@ -27909,7 +28209,7 @@
             ],
             "key.bodylength" : 275,
             "key.bodyoffset" : 3664,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> content<\/decl.name>: UIView<\/ref.class>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 299,
@@ -27945,7 +28245,7 @@
             ],
             "key.bodylength" : 126,
             "key.bodyoffset" : 4035,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 152,
@@ -28020,7 +28320,7 @@
             ],
             "key.bodylength" : 1878,
             "key.bodyoffset" : 4448,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preferredLayoutAttributesFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> layoutAttributes<\/decl.var.parameter.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 2012,
@@ -28056,7 +28356,7 @@
             "key.bodylength" : 78,
             "key.bodyoffset" : 6374,
             "key.doc.comment" : "Listable already properly sizes each cell. We do not use self-sizing cells.\nThus, just return the existing layout attributes.\n\nThis avoids an expensive call to sizeThatFits to \"re-size\" the cell to the same size\nduring each of UICollectionView's layout passes:\n\n#0  ItemElementCell.sizeThatFits(_:)\n#1  @objc ItemElementCell.sizeThatFits(_:) ()\n#2  -[UICollectionViewCell systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:] ()\n#3  -[UICollectionReusableView preferredLayoutAttributesFittingAttributes:] ()\n#4  -[UICollectionReusableView _preferredLayoutAttributesFittingAttributes:] ()\n#5  -[UICollectionView _checkForPreferredAttributesInView:originalAttributes:] ()\n#6  -[UICollectionView _updateVisibleCellsNow:] ()\n#7  -[UICollectionView layoutSubviews] ()\n\nReturning the passed in value without calling super is OK, per the docs:\nhttps:\/\/developer.apple.com\/documentation\/uikit\/uicollectionreusableview\/1620132-preferredlayoutattributesfitting\n\n  | The default implementation of this method adjusts the size values to accommodate changes made by a self-sizing cell.\n  | Subclasses can override this method and use it to adjust other layout attributes too.\n  | If you override this method and want the cell size adjustments, call super first and make your own modifications to the returned attributes.\n\nImportant part being \"If you override this method **and want the cell size adjustments**, call super first\".\n\nWe do not want these. Thus, this is fine.",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> prepareForReuse<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 107,
@@ -28099,7 +28399,7 @@
             ],
             "key.bodylength" : 148,
             "key.bodyoffset" : 6556,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sizeThatFits<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 194,
@@ -28134,7 +28434,7 @@
             ],
             "key.bodylength" : 165,
             "key.bodyoffset" : 6786,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 228,
@@ -28174,7 +28474,7 @@
             ],
             "key.bodylength" : 319,
             "key.bodyoffset" : 7181,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> systemLayoutSizeFitting<\/decl.name>(_<\/decl.var.parameter.argument_label> targetSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withHorizontalFittingPriority<\/decl.var.parameter.argument_label> horizontalFittingPriority<\/decl.var.parameter.name>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, verticalFittingPriority<\/decl.var.parameter.argument_label>: UILayoutPriority<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 530,
@@ -28214,7 +28514,7 @@
             ],
             "key.bodylength" : 135,
             "key.bodyoffset" : 7547,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/SupplementaryContainerView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 163,
@@ -28245,7 +28545,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/UIView.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/UIView.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 474,
     "key.offset" : 0,
@@ -28272,7 +28572,7 @@
             "key.annotated_decl" : "func firstSuperview<ViewType>(ofType: ViewType<\/Type>.Type) -> ViewType<\/Type>? where ViewType : UIView<\/Type><\/Declaration>",
             "key.bodylength" : 262,
             "key.bodyoffset" : 208,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/UIView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/UIView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> firstSuperview<\/decl.name><ViewType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(ofType<\/decl.var.parameter.argument_label>: ViewType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ViewType<\/ref.generic_type_param>?<\/decl.function.returntype> where<\/syntaxtype.keyword> ViewType : UIView<\/ref.class><\/decl.generic_type_requirement><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 338,
@@ -28293,7 +28593,7 @@
                     "key.offset" : 162
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/UIView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/UIView.swift",
                 "key.fully_annotated_decl" : "ViewType<\/decl.generic_type_param.name> : UIView<\/ref.class><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -28315,7 +28615,7 @@
               },
               {
                 "key.annotated_decl" : "var view: UIView<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/UIView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/UIView.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> view<\/decl.name>: UIView<\/ref.class>?<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 25,
@@ -28343,7 +28643,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 809,
     "key.offset" : 0,
@@ -28385,14 +28685,14 @@
                 "Para" : "This is a critically damped spring, and the duration is based on the spring physics."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift",
-            "key.doc.full_as_xml" : "init(system:)<\/Name>s:So22UIViewPropertyAnimatorC10ListableUIE6systemAByyc_tcfc<\/USR>convenience init(system animations: @escaping () -> Void)<\/Declaration>Create a UIViewPropertyAnimator with the same animation curve as most system animations (including view controller presentation and navigation controller pushes).<\/Para><\/Abstract>This is a critically damped spring, and the duration is based on the spring physics.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift",
+            "key.doc.full_as_xml" : "init(system:)<\/Name>s:So22UIViewPropertyAnimatorC10ListableUIE6systemAByyc_tcfc<\/USR>convenience init(system animations: @escaping () -> Void)<\/Declaration>Create a UIViewPropertyAnimator with the same animation curve as most system animations (including view controller presentation and navigation controller pushes).<\/Para><\/Abstract>This is a critically damped spring, and the duration is based on the spring physics.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 16,
             "key.doc.name" : "init(system:)",
             "key.doc.type" : "Function",
             "key.doclength" : 276,
             "key.docoffset" : 152,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift",
             "key.fully_annotated_decl" : "convenience<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(system<\/decl.var.parameter.argument_label> animations<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 362,
@@ -28423,7 +28723,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let params: UISpringTimingParameters<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/UIViewPropertyAnimator.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> params<\/decl.name>: UISpringTimingParameters<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 39,
@@ -28451,7 +28751,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Validations.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Validations.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 682,
     "key.offset" : 0,
@@ -28464,14 +28764,14 @@
         "key.doc.column" : 6,
         "key.doc.comment" : "Validates that the provided object is not a class type.",
         "key.doc.declaration" : "func assertIsValueType(_ valueType: Value.Type)",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Validations.swift",
-        "key.doc.full_as_xml" : "assertIsValueType(_:)<\/Name>s:10ListableUI17assertIsValueTypeyyxmlF<\/USR>func assertIsValueType<Value>(_ valueType: Value.Type)<\/Declaration>Validates that the provided object is not a class type.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Validations.swift",
+        "key.doc.full_as_xml" : "assertIsValueType(_:)<\/Name>s:10ListableUI17assertIsValueTypeyyxmlF<\/USR>func assertIsValueType<Value>(_ valueType: Value.Type)<\/Declaration>Validates that the provided object is not a class type.<\/Para><\/Abstract><\/CommentParts><\/Function>",
         "key.doc.line" : 12,
         "key.doc.name" : "assertIsValueType(_:)",
         "key.doc.type" : "Function",
         "key.doclength" : 60,
         "key.docoffset" : 110,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Validations.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Validations.swift",
         "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> assertIsValueType<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> valueType<\/decl.var.parameter.name>: Value<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.free>",
         "key.kind" : "source.lang.swift.decl.function.free",
         "key.length" : 511,
@@ -28485,7 +28785,7 @@
         "key.substructure" : [
           {
             "key.annotated_decl" : "Value<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Internal\/Validations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Internal\/Validations.swift",
             "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 5,
@@ -28508,9 +28808,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 898,
+    "key.length" : 906,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -28523,7 +28823,7 @@
             "key.offset" : 106
           }
         ],
-        "key.bodylength" : 410,
+        "key.bodylength" : 418,
         "key.bodyoffset" : 150,
         "key.elements" : [
           {
@@ -28532,7 +28832,7 @@
             "key.offset" : 132
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyItem<\/decl.name> : AnyItem_Internal<\/ref.protocol><\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -28540,13 +28840,13 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.protocol",
-        "key.length" : 448,
+        "key.length" : 456,
         "key.name" : "AnyItem",
         "key.namelength" : 7,
         "key.nameoffset" : 122,
         "key.offset" : 113,
         "key.parsed_declaration" : "public protocol AnyItem : AnyItem_Internal",
-        "key.parsed_scope.end" : 24,
+        "key.parsed_scope.end" : 26,
         "key.parsed_scope.start" : 11,
         "key.substructure" : [
           {
@@ -28554,7 +28854,7 @@
             "key.annotated_decl" : "var identifier: AnyIdentifier<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 187,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 38,
@@ -28574,7 +28874,7 @@
             "key.annotated_decl" : "var anyContent: Any { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 225,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyContent<\/decl.name>: Any<\/syntaxtype.keyword><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 28,
@@ -28594,7 +28894,7 @@
             "key.annotated_decl" : "var sizing: Sizing<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 9,
             "key.bodyoffset" : 262,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -28612,41 +28912,40 @@
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var layout: ItemLayout<\/Type> { get set }<\/Declaration>",
-            "key.bodylength" : 9,
-            "key.bodyoffset" : 302,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layout<\/decl.name>: ItemLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.annotated_decl" : "var layouts: ItemLayouts<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 309,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layouts<\/decl.name>: ItemLayouts<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 35,
-            "key.name" : "layout",
-            "key.namelength" : 6,
-            "key.nameoffset" : 281,
-            "key.offset" : 277,
-            "key.parsed_declaration" : "var layout : ItemLayout",
-            "key.parsed_scope.end" : 18,
-            "key.parsed_scope.start" : 18,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "ItemLayout",
-            "key.typeusr" : "$s10ListableUI10ItemLayoutVD",
-            "key.usr" : "s:10ListableUI7AnyItemP6layoutAA0D6LayoutVvp"
+            "key.length" : 33,
+            "key.name" : "layouts",
+            "key.namelength" : 7,
+            "key.nameoffset" : 286,
+            "key.offset" : 282,
+            "key.parsed_declaration" : "var layouts : ItemLayouts",
+            "key.parsed_scope.end" : 19,
+            "key.parsed_scope.start" : 19,
+            "key.typename" : "ItemLayouts",
+            "key.typeusr" : "$s10ListableUI11ItemLayoutsVD",
+            "key.usr" : "s:10ListableUI7AnyItemP7layoutsAA0D7LayoutsVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "var selectionStyle: ItemSelectionStyle<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 9,
-            "key.bodyoffset" : 358,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.bodyoffset" : 366,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> selectionStyle<\/decl.name>: ItemSelectionStyle<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 51,
             "key.name" : "selectionStyle",
             "key.namelength" : 14,
-            "key.nameoffset" : 321,
-            "key.offset" : 317,
+            "key.nameoffset" : 329,
+            "key.offset" : 325,
             "key.parsed_declaration" : "var selectionStyle : ItemSelectionStyle",
-            "key.parsed_scope.end" : 19,
-            "key.parsed_scope.start" : 19,
+            "key.parsed_scope.end" : 21,
+            "key.parsed_scope.start" : 21,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "ItemSelectionStyle",
             "key.typeusr" : "$s10ListableUI18ItemSelectionStyleOD",
@@ -28656,18 +28955,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "var insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>? { get set }<\/Declaration>",
             "key.bodylength" : 9,
-            "key.bodyoffset" : 437,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.bodyoffset" : 445,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 74,
             "key.name" : "insertAndRemoveAnimations",
             "key.namelength" : 25,
-            "key.nameoffset" : 377,
-            "key.offset" : 373,
+            "key.nameoffset" : 385,
+            "key.offset" : 381,
             "key.parsed_declaration" : "var insertAndRemoveAnimations : ItemInsertAndRemoveAnimations?",
-            "key.parsed_scope.end" : 20,
-            "key.parsed_scope.start" : 20,
+            "key.parsed_scope.end" : 22,
+            "key.parsed_scope.start" : 22,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "ItemInsertAndRemoveAnimations?",
             "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVSgD",
@@ -28677,18 +28976,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "var swipeActions: SwipeActionsConfiguration<\/Type>? { get set }<\/Declaration>",
             "key.bodylength" : 9,
-            "key.bodyoffset" : 499,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.bodyoffset" : 507,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> swipeActions<\/decl.name>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 57,
             "key.name" : "swipeActions",
             "key.namelength" : 12,
-            "key.nameoffset" : 456,
-            "key.offset" : 452,
+            "key.nameoffset" : 464,
+            "key.offset" : 460,
             "key.parsed_declaration" : "var swipeActions : SwipeActionsConfiguration?",
-            "key.parsed_scope.end" : 21,
-            "key.parsed_scope.start" : 21,
+            "key.parsed_scope.end" : 23,
+            "key.parsed_scope.start" : 23,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "SwipeActionsConfiguration?",
             "key.typeusr" : "$s10ListableUI25SwipeActionsConfigurationVSgD",
@@ -28698,18 +28997,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "var reordering: Reordering<\/Type>? { get set }<\/Declaration>",
             "key.bodylength" : 9,
-            "key.bodyoffset" : 549,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.bodyoffset" : 557,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> reordering<\/decl.name>: Reordering<\/ref.struct>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 40,
             "key.name" : "reordering",
             "key.namelength" : 10,
-            "key.nameoffset" : 523,
-            "key.offset" : 519,
+            "key.nameoffset" : 531,
+            "key.offset" : 527,
             "key.parsed_declaration" : "var reordering : Reordering?",
-            "key.parsed_scope.end" : 23,
-            "key.parsed_scope.start" : 23,
+            "key.parsed_scope.end" : 25,
+            "key.parsed_scope.start" : 25,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "Reordering?",
             "key.typeusr" : "$s10ListableUI10ReorderingVSgD",
@@ -28727,37 +29026,37 @@
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 564
+            "key.offset" : 572
           }
         ],
         "key.bodylength" : 298,
-        "key.bodyoffset" : 598,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+        "key.bodyoffset" : 606,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyItem_Internal<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.protocol",
         "key.length" : 326,
         "key.name" : "AnyItem_Internal",
         "key.namelength" : 16,
-        "key.nameoffset" : 580,
-        "key.offset" : 571,
+        "key.nameoffset" : 588,
+        "key.offset" : 579,
         "key.parsed_declaration" : "public protocol AnyItem_Internal",
-        "key.parsed_scope.end" : 37,
-        "key.parsed_scope.start" : 27,
+        "key.parsed_scope.end" : 39,
+        "key.parsed_scope.start" : 29,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func anyWasMoved(comparedTo other: AnyItem<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> anyWasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 52,
             "key.name" : "anyWasMoved(comparedTo:)",
             "key.namelength" : 39,
-            "key.nameoffset" : 608,
-            "key.offset" : 603,
+            "key.nameoffset" : 616,
+            "key.offset" : 611,
             "key.parsed_declaration" : "func anyWasMoved(comparedTo other : AnyItem) -> Bool",
-            "key.parsed_scope.end" : 29,
-            "key.parsed_scope.start" : 29,
+            "key.parsed_scope.end" : 31,
+            "key.parsed_scope.start" : 31,
             "key.substructure" : [
 
             ],
@@ -28768,17 +29067,17 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func anyIsEquivalent(to other: AnyItem<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> anyIsEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 48,
             "key.name" : "anyIsEquivalent(to:)",
             "key.namelength" : 35,
-            "key.nameoffset" : 665,
-            "key.offset" : 660,
+            "key.nameoffset" : 673,
+            "key.offset" : 668,
             "key.parsed_declaration" : "func anyIsEquivalent(to other : AnyItem) -> Bool",
-            "key.parsed_scope.end" : 30,
-            "key.parsed_scope.start" : 30,
+            "key.parsed_scope.end" : 32,
+            "key.parsed_scope.start" : 32,
             "key.substructure" : [
 
             ],
@@ -28789,17 +29088,17 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func newPresentationItemState(with dependencies: ItemStateDependencies<\/Type>, updateCallbacks: UpdateCallbacks<\/Type>, performsContentCallbacks: Bool<\/Type>) -> Any<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/AnyItem.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/AnyItem.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> newPresentationItemState<\/decl.name>(with<\/decl.var.parameter.argument_label> dependencies<\/decl.var.parameter.name>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Any<\/syntaxtype.keyword><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 177,
             "key.name" : "newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)",
             "key.namelength" : 165,
-            "key.nameoffset" : 723,
-            "key.offset" : 718,
+            "key.nameoffset" : 731,
+            "key.offset" : 726,
             "key.parsed_declaration" : "func newPresentationItemState(\n    with dependencies : ItemStateDependencies,\n    updateCallbacks : UpdateCallbacks,\n    performsContentCallbacks : Bool\n) -> Any",
-            "key.parsed_scope.end" : 32,
-            "key.parsed_scope.start" : 32,
+            "key.parsed_scope.end" : 34,
+            "key.parsed_scope.start" : 34,
             "key.substructure" : [
 
             ],
@@ -28815,9 +29114,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 1436,
+    "key.length" : 1442,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -28830,7 +29129,7 @@
             "key.offset" : 612
           }
         ],
-        "key.bodylength" : 764,
+        "key.bodylength" : 770,
         "key.bodyoffset" : 670,
         "key.doc.column" : 15,
         "key.doc.comment" : "Allows specifying default properties to apply to an item when it is initialized,\nif those values are not provided to the initializer.\nOnly non-nil values are used – if you do not want to provide a default value,\nsimply leave the property nil.\n\nThe order of precedence used when assigning values is:\n1) The value passed to the initializer.\n2) The value from `defaultItemProperties` on the contained `ItemContent`, if non-nil.\n3) A standard, default value.",
@@ -28843,17 +29142,17 @@
             "List-Number" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
-        "key.doc.full_as_xml" : "DefaultItemProperties<\/Name>s:10ListableUI21DefaultItemPropertiesV<\/USR>public struct DefaultItemProperties<Content> where Content : ListableUI.ItemContent<\/Declaration>Allows specifying default properties to apply to an item when it is initialized, if those values are not provided to the initializer. Only non-nil values are used – if you do not want to provide a default value, simply leave the property nil.<\/Para><\/Abstract>The order of precedence used when assigning values is:<\/Para>The value passed to the initializer.<\/Para><\/Item>The value from defaultItemProperties<\/codeVoice> on the contained ItemContent<\/codeVoice>, if non-nil.<\/Para><\/Item>A standard, default value.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
+        "key.doc.full_as_xml" : "DefaultItemProperties<\/Name>s:10ListableUI21DefaultItemPropertiesV<\/USR>public struct DefaultItemProperties<Content> where Content : ListableUI.ItemContent<\/Declaration>Allows specifying default properties to apply to an item when it is initialized, if those values are not provided to the initializer. Only non-nil values are used – if you do not want to provide a default value, simply leave the property nil.<\/Para><\/Abstract>The order of precedence used when assigning values is:<\/Para>The value passed to the initializer.<\/Para><\/Item>The value from defaultItemProperties<\/codeVoice> on the contained ItemContent<\/codeVoice>, if non-nil.<\/Para><\/Item>A standard, default value.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 20,
         "key.doc.name" : "DefaultItemProperties",
         "key.doc.type" : "Class",
         "key.doclength" : 492,
         "key.docoffset" : 120,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> DefaultItemProperties<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 816,
+        "key.length" : 822,
         "key.name" : "DefaultItemProperties",
         "key.namelength" : 21,
         "key.nameoffset" : 626,
@@ -28871,7 +29170,7 @@
                 "key.offset" : 656
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -28901,7 +29200,7 @@
                 "key.offset" : 675
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 20,
@@ -28919,7 +29218,7 @@
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var layout: ItemLayout<\/Type>?<\/Declaration>",
+            "key.annotated_decl" : "public var layouts: ItemLayouts<\/Type>?<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
@@ -28927,21 +29226,21 @@
                 "key.offset" : 707
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: ItemLayout<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: ItemLayouts<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 24,
-            "key.name" : "layout",
-            "key.namelength" : 6,
+            "key.length" : 26,
+            "key.name" : "layouts",
+            "key.namelength" : 7,
             "key.nameoffset" : 718,
             "key.offset" : 714,
-            "key.parsed_declaration" : "public var layout : ItemLayout?",
+            "key.parsed_declaration" : "public var layouts : ItemLayouts?",
             "key.parsed_scope.end" : 23,
             "key.parsed_scope.start" : 23,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "ItemLayout?",
-            "key.typeusr" : "$s10ListableUI10ItemLayoutVSgD",
-            "key.usr" : "s:10ListableUI21DefaultItemPropertiesV6layoutAA0D6LayoutVSgvp"
+            "key.typename" : "ItemLayouts?",
+            "key.typeusr" : "$s10ListableUI11ItemLayoutsVSgD",
+            "key.usr" : "s:10ListableUI21DefaultItemPropertiesV7layoutsAA0D7LayoutsVSgvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -28950,17 +29249,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 748
+                "key.offset" : 750
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectionStyle<\/decl.name>: ItemSelectionStyle<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 40,
             "key.name" : "selectionStyle",
             "key.namelength" : 14,
-            "key.nameoffset" : 759,
-            "key.offset" : 755,
+            "key.nameoffset" : 761,
+            "key.offset" : 757,
             "key.parsed_declaration" : "public var selectionStyle : ItemSelectionStyle?",
             "key.parsed_scope.end" : 25,
             "key.parsed_scope.start" : 25,
@@ -28976,17 +29275,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 805
+                "key.offset" : 807
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 62,
             "key.name" : "insertAndRemoveAnimations",
             "key.namelength" : 25,
-            "key.nameoffset" : 816,
-            "key.offset" : 812,
+            "key.nameoffset" : 818,
+            "key.offset" : 814,
             "key.parsed_declaration" : "public var insertAndRemoveAnimations : ItemInsertAndRemoveAnimations?",
             "key.parsed_scope.end" : 27,
             "key.parsed_scope.start" : 27,
@@ -29002,17 +29301,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 884
+                "key.offset" : 886
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> swipeActions<\/decl.name>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 45,
             "key.name" : "swipeActions",
             "key.namelength" : 12,
-            "key.nameoffset" : 895,
-            "key.offset" : 891,
+            "key.nameoffset" : 897,
+            "key.offset" : 893,
             "key.parsed_declaration" : "public var swipeActions : SwipeActionsConfiguration?",
             "key.parsed_scope.end" : 29,
             "key.parsed_scope.start" : 29,
@@ -29023,33 +29322,33 @@
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(sizing: Sizing<\/Type>? = nil, layout: ItemLayout<\/Type>? = nil, selectionStyle: ItemSelectionStyle<\/Type>? = nil, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>? = nil, swipeActions: SwipeActionsConfiguration<\/Type>? = nil)<\/Declaration>",
+            "key.annotated_decl" : "public init(sizing: Sizing<\/Type>? = nil, layouts: ItemLayouts<\/Type>? = nil, selectionStyle: ItemSelectionStyle<\/Type>? = nil, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>? = nil, swipeActions: SwipeActionsConfiguration<\/Type>? = nil)<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 946
+                "key.offset" : 948
               }
             ],
-            "key.bodylength" : 216,
-            "key.bodyoffset" : 1216,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: ItemLayout<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, selectionStyle<\/decl.var.parameter.argument_label>: ItemSelectionStyle<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, swipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.bodylength" : 218,
+            "key.bodyoffset" : 1220,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/DefaultItemProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: ItemLayouts<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, selectionStyle<\/decl.var.parameter.argument_label>: ItemSelectionStyle<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, swipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 480,
-            "key.name" : "init(sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:)",
-            "key.namelength" : 261,
-            "key.nameoffset" : 953,
-            "key.offset" : 953,
-            "key.parsed_declaration" : "public init(\n    sizing : Sizing? = nil,\n    layout : ItemLayout? = nil,\n    selectionStyle : ItemSelectionStyle? = nil,\n    insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,\n    swipeActions : SwipeActionsConfiguration? = nil\n)",
+            "key.length" : 484,
+            "key.name" : "init(sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:)",
+            "key.namelength" : 263,
+            "key.nameoffset" : 955,
+            "key.offset" : 955,
+            "key.parsed_declaration" : "public init(\n    sizing : Sizing? = nil,\n    layouts : ItemLayouts? = nil,\n    selectionStyle : ItemSelectionStyle? = nil,\n    insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,\n    swipeActions : SwipeActionsConfiguration? = nil\n)",
             "key.parsed_scope.end" : 43,
             "key.parsed_scope.start" : 31,
             "key.substructure" : [
 
             ],
-            "key.typename" : " (DefaultItemProperties.Type) -> (Sizing?, ItemLayout?, ItemSelectionStyle?, ItemInsertAndRemoveAnimations?, SwipeActionsConfiguration?) -> DefaultItemProperties",
-            "key.typeusr" : "$s6sizing6layout14selectionStyle25insertAndRemoveAnimations12swipeActions10ListableUI21DefaultItemPropertiesVyxGAF6SizingOSg_AF0N6LayoutVSgAF0n9SelectionD0OSgAF0n6InsertfgH0VSgAF05SwipeJ13ConfigurationVSgtcD",
-            "key.usr" : "s:10ListableUI21DefaultItemPropertiesV6sizing6layout14selectionStyle25insertAndRemoveAnimations12swipeActionsACyxGAA6SizingOSg_AA0D6LayoutVSgAA0d9SelectionI0OSgAA0d6InsertklM0VSgAA05SwipeO13ConfigurationVSgtcfc"
+            "key.typename" : " (DefaultItemProperties.Type) -> (Sizing?, ItemLayouts?, ItemSelectionStyle?, ItemInsertAndRemoveAnimations?, SwipeActionsConfiguration?) -> DefaultItemProperties",
+            "key.typeusr" : "$s6sizing7layouts14selectionStyle25insertAndRemoveAnimations12swipeActions10ListableUI21DefaultItemPropertiesVyxGAF6SizingOSg_AF0N7LayoutsVSgAF0n9SelectionD0OSgAF0n6InsertfgH0VSgAF05SwipeJ13ConfigurationVSgtcD",
+            "key.usr" : "s:10ListableUI21DefaultItemPropertiesV6sizing7layouts14selectionStyle25insertAndRemoveAnimations12swipeActionsACyxGAA6SizingOSg_AA0D7LayoutsVSgAA0d9SelectionI0OSgAA0d6InsertklM0VSgAA05SwipeO13ConfigurationVSgtcfc"
           }
         ],
         "key.typename" : "DefaultItemProperties.Type",
@@ -29059,1040 +29358,275 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 1568,
+    "key.length" : 5340,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct Item<Content> : AnyItem where Content : ItemContent<\/Type><\/Declaration>",
+        "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type> where Content : ItemContent<\/Type><\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 113
+            "key.offset" : 83
           }
         ],
-        "key.bodylength" : 1430,
-        "key.bodyoffset" : 136,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 1447,
+        "key.bodylength" : 4959,
+        "key.bodyoffset" : 134,
+        "key.elements" : [
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 7,
+            "key.offset" : 125
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
+        "key.inheritedtypes" : [
+          {
+            "key.name" : "AnyItem"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 5004,
         "key.name" : "Item",
         "key.namelength" : 4,
-        "key.nameoffset" : 130,
-        "key.offset" : 120,
-        "key.parsed_declaration" : "public extension Item",
-        "key.parsed_scope.end" : 78,
-        "key.parsed_scope.start" : 11,
+        "key.nameoffset" : 97,
+        "key.offset" : 90,
+        "key.parsed_declaration" : "public struct Item : AnyItem",
+        "key.parsed_scope.end" : 172,
+        "key.parsed_scope.start" : 9,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "struct OnDisplay<\/Declaration>",
-            "key.bodylength" : 141,
-            "key.bodyoffset" : 224,
-            "key.doc.column" : 12,
-            "key.doc.comment" : "Value passed to the `onDisplay` callback for `Item`.",
-            "key.doc.declaration" : "struct OnDisplay",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.doc.full_as_xml" : "OnDisplay<\/Name>s:10ListableUI4ItemV9OnDisplayV<\/USR>struct OnDisplay<\/Declaration>Value passed to the onDisplay<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
-            "key.doc.line" : 14,
-            "key.doc.name" : "OnDisplay",
-            "key.doc.type" : "Class",
-            "key.doclength" : 57,
-            "key.docoffset" : 141,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnDisplay<\/decl.name><\/decl.struct>",
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 164,
-            "key.name" : "OnDisplay",
-            "key.namelength" : 9,
-            "key.nameoffset" : 209,
-            "key.offset" : 202,
-            "key.parsed_declaration" : "struct OnDisplay",
-            "key.parsed_scope.end" : 21,
-            "key.parsed_scope.start" : 14,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnDisplay<\/Type>.Callback = (OnDisplay<\/Type>) -> ()<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 233
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnDisplay<\/ref.struct>.Callback<\/decl.name> = (OnDisplay<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
-                "key.kind" : "source.lang.swift.decl.typealias",
-                "key.length" : 38,
-                "key.name" : "Callback",
-                "key.namelength" : 8,
-                "key.nameoffset" : 250,
-                "key.offset" : 240,
-                "key.parsed_declaration" : "public typealias Callback = (OnDisplay) -> ()",
-                "key.parsed_scope.end" : 16,
-                "key.parsed_scope.start" : 16,
-                "key.typename" : "((Item.OnDisplay) -> ()).Type",
-                "key.typeusr" : "$sy10ListableUI4ItemV9OnDisplayVyx_GcmD",
-                "key.usr" : "s:10ListableUI4ItemV9OnDisplayV8Callbacka"
-              },
+            "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>",
+            "key.elements" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 288
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 15,
-                "key.name" : "item",
-                "key.namelength" : 4,
-                "key.nameoffset" : 299,
-                "key.offset" : 295,
-                "key.parsed_declaration" : "public var item : Item",
-                "key.parsed_scope.end" : 18,
-                "key.parsed_scope.start" : 18,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV9OnDisplayV4itemACyxGvp"
-              },
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 11,
+                "key.offset" : 110
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
+            "key.inheritedtypes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var isFirstDisplay: Bool<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 328
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 25,
-                "key.name" : "isFirstDisplay",
-                "key.namelength" : 14,
-                "key.nameoffset" : 339,
-                "key.offset" : 335,
-                "key.parsed_declaration" : "public var isFirstDisplay : Bool",
-                "key.parsed_scope.end" : 20,
-                "key.parsed_scope.start" : 20,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Bool",
-                "key.typeusr" : "$sSbD",
-                "key.usr" : "s:10ListableUI4ItemV9OnDisplayV07isFirstE0Sbvp"
+                "key.name" : "ItemContent"
               }
             ],
-            "key.typename" : "Item.OnDisplay.Type",
-            "key.typeusr" : "$s10ListableUI4ItemV9OnDisplayVyx_GmD",
-            "key.usr" : "s:10ListableUI4ItemV9OnDisplayV"
+            "key.kind" : "source.lang.swift.decl.generic_type_param",
+            "key.length" : 19,
+            "key.name" : "Content",
+            "key.namelength" : 7,
+            "key.nameoffset" : 102,
+            "key.offset" : 102,
+            "key.parsed_declaration" : "public struct Itemstruct OnEndDisplay<\/Declaration>",
-            "key.bodylength" : 147,
-            "key.bodyoffset" : 465,
-            "key.doc.column" : 12,
-            "key.doc.comment" : "Value passed to the `onEndDisplay` callback for `Item`.",
-            "key.doc.declaration" : "struct OnEndDisplay",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.doc.full_as_xml" : "OnEndDisplay<\/Name>s:10ListableUI4ItemV12OnEndDisplayV<\/USR>struct OnEndDisplay<\/Declaration>Value passed to the onEndDisplay<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
-            "key.doc.line" : 24,
-            "key.doc.name" : "OnEndDisplay",
-            "key.doc.type" : "Class",
-            "key.doclength" : 60,
-            "key.docoffset" : 376,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnEndDisplay<\/decl.name><\/decl.struct>",
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 173,
-            "key.name" : "OnEndDisplay",
-            "key.namelength" : 12,
-            "key.nameoffset" : 447,
-            "key.offset" : 440,
-            "key.parsed_declaration" : "struct OnEndDisplay",
-            "key.parsed_scope.end" : 31,
-            "key.parsed_scope.start" : 24,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnEndDisplay<\/Type>.Callback = (OnEndDisplay<\/Type>) -> ()<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 474
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnEndDisplay<\/ref.struct>.Callback<\/decl.name> = (OnEndDisplay<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
-                "key.kind" : "source.lang.swift.decl.typealias",
-                "key.length" : 41,
-                "key.name" : "Callback",
-                "key.namelength" : 8,
-                "key.nameoffset" : 491,
-                "key.offset" : 481,
-                "key.parsed_declaration" : "public typealias Callback = (OnEndDisplay) -> ()",
-                "key.parsed_scope.end" : 26,
-                "key.parsed_scope.start" : 26,
-                "key.typename" : "((Item.OnEndDisplay) -> ()).Type",
-                "key.typeusr" : "$sy10ListableUI4ItemV12OnEndDisplayVyx_GcmD",
-                "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV8Callbacka"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 532
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 15,
-                "key.name" : "item",
-                "key.namelength" : 4,
-                "key.nameoffset" : 543,
-                "key.offset" : 539,
-                "key.parsed_declaration" : "public var item : Item",
-                "key.parsed_scope.end" : 28,
-                "key.parsed_scope.start" : 28,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV4itemACyxGvp"
-              },
+            "key.annotated_decl" : "public var identifier: AnyIdentifier<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var isFirstEndDisplay: Bool<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 572
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstEndDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 28,
-                "key.name" : "isFirstEndDisplay",
-                "key.namelength" : 17,
-                "key.nameoffset" : 583,
-                "key.offset" : 579,
-                "key.parsed_declaration" : "public var isFirstEndDisplay : Bool",
-                "key.parsed_scope.end" : 30,
-                "key.parsed_scope.start" : 30,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Bool",
-                "key.typeusr" : "$sSbD",
-                "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV07isFirsteF0Sbvp"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 139
               }
             ],
-            "key.typename" : "Item.OnEndDisplay.Type",
-            "key.typeusr" : "$s10ListableUI4ItemV12OnEndDisplayVyx_GmD",
-            "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "struct OnSelect<\/Declaration>",
-            "key.bodylength" : 98,
-            "key.bodyoffset" : 704,
-            "key.doc.column" : 12,
-            "key.doc.comment" : "Value passed to the `onSelect` callback for `Item`.",
-            "key.doc.declaration" : "struct OnSelect",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.doc.full_as_xml" : "OnSelect<\/Name>s:10ListableUI4ItemV8OnSelectV<\/USR>struct OnSelect<\/Declaration>Value passed to the onSelect<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
-            "key.doc.line" : 34,
-            "key.doc.name" : "OnSelect",
-            "key.doc.type" : "Class",
-            "key.doclength" : 56,
-            "key.docoffset" : 623,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnSelect<\/decl.name><\/decl.struct>",
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 120,
-            "key.name" : "OnSelect",
-            "key.namelength" : 8,
-            "key.nameoffset" : 690,
-            "key.offset" : 683,
-            "key.parsed_declaration" : "struct OnSelect",
-            "key.parsed_scope.end" : 39,
-            "key.parsed_scope.start" : 34,
-            "key.substructure" : [
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 30,
+            "key.name" : "identifier",
+            "key.namelength" : 10,
+            "key.nameoffset" : 150,
+            "key.offset" : 146,
+            "key.overrides" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnSelect<\/Type>.Callback = (OnSelect<\/Type>) -> ()<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 713
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnSelect<\/ref.struct>.Callback<\/decl.name> = (OnSelect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
-                "key.kind" : "source.lang.swift.decl.typealias",
-                "key.length" : 37,
-                "key.name" : "Callback",
-                "key.namelength" : 8,
-                "key.nameoffset" : 730,
-                "key.offset" : 720,
-                "key.parsed_declaration" : "public typealias Callback = (OnSelect) -> ()",
-                "key.parsed_scope.end" : 36,
-                "key.parsed_scope.start" : 36,
-                "key.typename" : "((Item.OnSelect) -> ()).Type",
-                "key.typeusr" : "$sy10ListableUI4ItemV8OnSelectVyx_GcmD",
-                "key.usr" : "s:10ListableUI4ItemV8OnSelectV8Callbacka"
-              },
+                "key.usr" : "s:10ListableUI7AnyItemP10identifierAA0C10IdentifierCvp"
+              }
+            ],
+            "key.parsed_declaration" : "public var identifier : AnyIdentifier",
+            "key.parsed_scope.end" : 11,
+            "key.parsed_scope.start" : 11,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "AnyIdentifier",
+            "key.typeusr" : "$s10ListableUI13AnyIdentifierCD",
+            "key.usr" : "s:10ListableUI4ItemV10identifierAA13AnyIdentifierCvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var content: Content<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 775
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 15,
-                "key.name" : "item",
-                "key.namelength" : 4,
-                "key.nameoffset" : 786,
-                "key.offset" : 782,
-                "key.parsed_declaration" : "public var item : Item",
-                "key.parsed_scope.end" : 38,
-                "key.parsed_scope.start" : 38,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV8OnSelectV4itemACyxGvp"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 186
               }
             ],
-            "key.typename" : "Item.OnSelect.Type",
-            "key.typeusr" : "$s10ListableUI4ItemV8OnSelectVyx_GmD",
-            "key.usr" : "s:10ListableUI4ItemV8OnSelectV"
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 21,
+            "key.name" : "content",
+            "key.namelength" : 7,
+            "key.nameoffset" : 197,
+            "key.offset" : 193,
+            "key.parsed_declaration" : "public var content : Content",
+            "key.parsed_scope.end" : 13,
+            "key.parsed_scope.start" : 13,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Content",
+            "key.typeusr" : "$sxD",
+            "key.usr" : "s:10ListableUI4ItemV7contentxvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "struct OnDeselect<\/Declaration>",
-            "key.bodylength" : 92,
-            "key.bodyoffset" : 898,
-            "key.doc.column" : 12,
-            "key.doc.comment" : "Value passed to the `onDeselect` callback for `Item`.",
-            "key.doc.declaration" : "struct OnDeselect",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.doc.full_as_xml" : "OnDeselect<\/Name>s:10ListableUI4ItemV10OnDeselectV<\/USR>struct OnDeselect<\/Declaration>Value passed to the onDeselect<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
-            "key.doc.line" : 42,
-            "key.doc.name" : "OnDeselect",
-            "key.doc.type" : "Class",
-            "key.doclength" : 58,
-            "key.docoffset" : 813,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnDeselect<\/decl.name><\/decl.struct>",
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 116,
-            "key.name" : "OnDeselect",
-            "key.namelength" : 10,
-            "key.nameoffset" : 882,
-            "key.offset" : 875,
-            "key.parsed_declaration" : "struct OnDeselect",
-            "key.parsed_scope.end" : 47,
-            "key.parsed_scope.start" : 42,
-            "key.substructure" : [
+            "key.annotated_decl" : "public var sizing: Sizing<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnDeselect<\/Type>.Callback = (OnDeselect<\/Type>) -> ()<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 907
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnDeselect<\/ref.struct>.Callback<\/decl.name> = (OnDeselect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
-                "key.kind" : "source.lang.swift.decl.typealias",
-                "key.length" : 39,
-                "key.name" : "Callback",
-                "key.namelength" : 8,
-                "key.nameoffset" : 924,
-                "key.offset" : 914,
-                "key.parsed_declaration" : "public typealias Callback = (OnDeselect) -> ()",
-                "key.parsed_scope.end" : 44,
-                "key.parsed_scope.start" : 44,
-                "key.typename" : "((Item.OnDeselect) -> ()).Type",
-                "key.typeusr" : "$sy10ListableUI4ItemV10OnDeselectVyx_GcmD",
-                "key.usr" : "s:10ListableUI4ItemV10OnDeselectV8Callbacka"
-              },
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 224
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 19,
+            "key.name" : "sizing",
+            "key.namelength" : 6,
+            "key.nameoffset" : 235,
+            "key.offset" : 231,
+            "key.overrides" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 963
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 15,
-                "key.name" : "item",
-                "key.namelength" : 4,
-                "key.nameoffset" : 974,
-                "key.offset" : 970,
-                "key.parsed_declaration" : "public var item : Item",
-                "key.parsed_scope.end" : 46,
-                "key.parsed_scope.start" : 46,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV10OnDeselectV4itemACyxGvp"
+                "key.usr" : "s:10ListableUI7AnyItemP6sizingAA6SizingOvp"
               }
             ],
-            "key.typename" : "Item.OnDeselect.Type",
-            "key.typeusr" : "$s10ListableUI4ItemV10OnDeselectVyx_GmD",
-            "key.usr" : "s:10ListableUI4ItemV10OnDeselectV"
+            "key.parsed_declaration" : "public var sizing : Sizing",
+            "key.parsed_scope.end" : 15,
+            "key.parsed_scope.start" : 15,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Sizing",
+            "key.typeusr" : "$s10ListableUI6SizingOD",
+            "key.usr" : "s:10ListableUI4ItemV6sizingAA6SizingOvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "struct OnInsert<\/Declaration>",
-            "key.bodylength" : 98,
-            "key.bodyoffset" : 1022,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnInsert<\/decl.name><\/decl.struct>",
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 120,
-            "key.name" : "OnInsert",
-            "key.namelength" : 8,
-            "key.nameoffset" : 1008,
-            "key.offset" : 1001,
-            "key.parsed_declaration" : "struct OnInsert",
-            "key.parsed_scope.end" : 54,
-            "key.parsed_scope.start" : 49,
-            "key.substructure" : [
+            "key.annotated_decl" : "public var layouts: ItemLayouts<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnInsert<\/Type>.Callback = (OnInsert<\/Type>) -> ()<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1031
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnInsert<\/ref.struct>.Callback<\/decl.name> = (OnInsert<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
-                "key.kind" : "source.lang.swift.decl.typealias",
-                "key.length" : 37,
-                "key.name" : "Callback",
-                "key.namelength" : 8,
-                "key.nameoffset" : 1048,
-                "key.offset" : 1038,
-                "key.parsed_declaration" : "public typealias Callback = (OnInsert) -> ()",
-                "key.parsed_scope.end" : 51,
-                "key.parsed_scope.start" : 51,
-                "key.typename" : "((Item.OnInsert) -> ()).Type",
-                "key.typeusr" : "$sy10ListableUI4ItemV8OnInsertVyx_GcmD",
-                "key.usr" : "s:10ListableUI4ItemV8OnInsertV8Callbacka"
-              },
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 255
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: ItemLayouts<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 25,
+            "key.name" : "layouts",
+            "key.namelength" : 7,
+            "key.nameoffset" : 266,
+            "key.offset" : 262,
+            "key.overrides" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1093
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 15,
-                "key.name" : "item",
-                "key.namelength" : 4,
-                "key.nameoffset" : 1104,
-                "key.offset" : 1100,
-                "key.parsed_declaration" : "public var item : Item",
-                "key.parsed_scope.end" : 53,
-                "key.parsed_scope.start" : 53,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV8OnInsertV4itemACyxGvp"
+                "key.usr" : "s:10ListableUI7AnyItemP7layoutsAA0D7LayoutsVvp"
               }
             ],
-            "key.typename" : "Item.OnInsert.Type",
-            "key.typeusr" : "$s10ListableUI4ItemV8OnInsertVyx_GmD",
-            "key.usr" : "s:10ListableUI4ItemV8OnInsertV"
+            "key.parsed_declaration" : "public var layouts : ItemLayouts",
+            "key.parsed_scope.end" : 16,
+            "key.parsed_scope.start" : 16,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "ItemLayouts",
+            "key.typeusr" : "$s10ListableUI11ItemLayoutsVD",
+            "key.usr" : "s:10ListableUI4ItemV7layoutsAA0C7LayoutsVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "struct OnRemove<\/Declaration>",
-            "key.bodylength" : 98,
-            "key.bodyoffset" : 1152,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnRemove<\/decl.name><\/decl.struct>",
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 120,
-            "key.name" : "OnRemove",
-            "key.namelength" : 8,
-            "key.nameoffset" : 1138,
-            "key.offset" : 1131,
-            "key.parsed_declaration" : "struct OnRemove",
-            "key.parsed_scope.end" : 61,
-            "key.parsed_scope.start" : 56,
-            "key.substructure" : [
+            "key.annotated_decl" : "public var selectionStyle: ItemSelectionStyle<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnRemove<\/Type>.Callback = (OnRemove<\/Type>) -> ()<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1161
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnRemove<\/ref.struct>.Callback<\/decl.name> = (OnRemove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
-                "key.kind" : "source.lang.swift.decl.typealias",
-                "key.length" : 37,
-                "key.name" : "Callback",
-                "key.namelength" : 8,
-                "key.nameoffset" : 1178,
-                "key.offset" : 1168,
-                "key.parsed_declaration" : "public typealias Callback = (OnRemove) -> ()",
-                "key.parsed_scope.end" : 58,
-                "key.parsed_scope.start" : 58,
-                "key.typename" : "((Item.OnRemove) -> ()).Type",
-                "key.typeusr" : "$sy10ListableUI4ItemV8OnRemoveVyx_GcmD",
-                "key.usr" : "s:10ListableUI4ItemV8OnRemoveV8Callbacka"
-              },
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 297
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectionStyle<\/decl.name>: ItemSelectionStyle<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 39,
+            "key.name" : "selectionStyle",
+            "key.namelength" : 14,
+            "key.nameoffset" : 308,
+            "key.offset" : 304,
+            "key.overrides" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1223
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 15,
-                "key.name" : "item",
-                "key.namelength" : 4,
-                "key.nameoffset" : 1234,
-                "key.offset" : 1230,
-                "key.parsed_declaration" : "public var item : Item",
-                "key.parsed_scope.end" : 60,
-                "key.parsed_scope.start" : 60,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV8OnRemoveV4itemACyxGvp"
+                "key.usr" : "s:10ListableUI7AnyItemP14selectionStyleAA0d9SelectionF0Ovp"
               }
             ],
-            "key.typename" : "Item.OnRemove.Type",
-            "key.typeusr" : "$s10ListableUI4ItemV8OnRemoveVyx_GmD",
-            "key.usr" : "s:10ListableUI4ItemV8OnRemoveV"
+            "key.parsed_declaration" : "public var selectionStyle : ItemSelectionStyle",
+            "key.parsed_scope.end" : 18,
+            "key.parsed_scope.start" : 18,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "ItemSelectionStyle",
+            "key.typeusr" : "$s10ListableUI18ItemSelectionStyleOD",
+            "key.usr" : "s:10ListableUI4ItemV14selectionStyleAA0c9SelectionE0Ovp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "struct OnMove<\/Declaration>",
-            "key.bodylength" : 125,
-            "key.bodyoffset" : 1280,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnMove<\/decl.name><\/decl.struct>",
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 145,
-            "key.name" : "OnMove",
-            "key.namelength" : 6,
-            "key.nameoffset" : 1268,
-            "key.offset" : 1261,
-            "key.parsed_declaration" : "struct OnMove",
-            "key.parsed_scope.end" : 69,
-            "key.parsed_scope.start" : 63,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnMove<\/Type>.Callback = (OnMove<\/Type>) -> ()<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1289
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnMove<\/ref.struct>.Callback<\/decl.name> = (OnMove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
-                "key.kind" : "source.lang.swift.decl.typealias",
-                "key.length" : 35,
-                "key.name" : "Callback",
-                "key.namelength" : 8,
-                "key.nameoffset" : 1306,
-                "key.offset" : 1296,
-                "key.parsed_declaration" : "public typealias Callback = (OnMove) -> ()",
-                "key.parsed_scope.end" : 65,
-                "key.parsed_scope.start" : 65,
-                "key.typename" : "((Item.OnMove) -> ()).Type",
-                "key.typeusr" : "$sy10ListableUI4ItemV6OnMoveVyx_GcmD",
-                "key.usr" : "s:10ListableUI4ItemV6OnMoveV8Callbacka"
-              },
+            "key.annotated_decl" : "public var insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>?<\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var old: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1349
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> old<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 14,
-                "key.name" : "old",
-                "key.namelength" : 3,
-                "key.nameoffset" : 1360,
-                "key.offset" : 1356,
-                "key.parsed_declaration" : "public var old : Item",
-                "key.parsed_scope.end" : 67,
-                "key.parsed_scope.start" : 67,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV6OnMoveV3oldACyxGvp"
-              },
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 353
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 62,
+            "key.name" : "insertAndRemoveAnimations",
+            "key.namelength" : 25,
+            "key.nameoffset" : 364,
+            "key.offset" : 360,
+            "key.overrides" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var new: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1379
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> new<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 14,
-                "key.name" : "new",
-                "key.namelength" : 3,
-                "key.nameoffset" : 1390,
-                "key.offset" : 1386,
-                "key.parsed_declaration" : "public var new : Item",
-                "key.parsed_scope.end" : 68,
-                "key.parsed_scope.start" : 68,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV6OnMoveV3newACyxGvp"
+                "key.usr" : "s:10ListableUI7AnyItemP25insertAndRemoveAnimationsAA0d6InsertfgH0VSgvp"
               }
             ],
-            "key.typename" : "Item.OnMove.Type",
-            "key.typeusr" : "$s10ListableUI4ItemV6OnMoveVyx_GmD",
-            "key.usr" : "s:10ListableUI4ItemV6OnMoveV"
+            "key.parsed_declaration" : "public var insertAndRemoveAnimations : ItemInsertAndRemoveAnimations?",
+            "key.parsed_scope.end" : 20,
+            "key.parsed_scope.start" : 20,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "ItemInsertAndRemoveAnimations?",
+            "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVSgD",
+            "key.usr" : "s:10ListableUI4ItemV25insertAndRemoveAnimationsAA0c6InsertefG0VSgvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "struct OnUpdate<\/Declaration>",
-            "key.bodylength" : 127,
-            "key.bodyoffset" : 1437,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnUpdate<\/decl.name><\/decl.struct>",
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 149,
-            "key.name" : "OnUpdate",
-            "key.namelength" : 8,
-            "key.nameoffset" : 1423,
-            "key.offset" : 1416,
-            "key.parsed_declaration" : "struct OnUpdate",
-            "key.parsed_scope.end" : 77,
-            "key.parsed_scope.start" : 71,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnUpdate<\/Type>.Callback = (OnUpdate<\/Type>) -> ()<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1446
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnUpdate<\/ref.struct>.Callback<\/decl.name> = (OnUpdate<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
-                "key.kind" : "source.lang.swift.decl.typealias",
-                "key.length" : 37,
-                "key.name" : "Callback",
-                "key.namelength" : 8,
-                "key.nameoffset" : 1463,
-                "key.offset" : 1453,
-                "key.parsed_declaration" : "public typealias Callback = (OnUpdate) -> ()",
-                "key.parsed_scope.end" : 73,
-                "key.parsed_scope.start" : 73,
-                "key.typename" : "((Item.OnUpdate) -> ()).Type",
-                "key.typeusr" : "$sy10ListableUI4ItemV8OnUpdateVyx_GcmD",
-                "key.usr" : "s:10ListableUI4ItemV8OnUpdateV8Callbacka"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var old: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1508
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> old<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 14,
-                "key.name" : "old",
-                "key.namelength" : 3,
-                "key.nameoffset" : 1519,
-                "key.offset" : 1515,
-                "key.parsed_declaration" : "public var old : Item",
-                "key.parsed_scope.end" : 75,
-                "key.parsed_scope.start" : 75,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV8OnUpdateV3oldACyxGvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var new: Item<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 1538
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item+Callbacks.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> new<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 14,
-                "key.name" : "new",
-                "key.namelength" : 3,
-                "key.nameoffset" : 1549,
-                "key.offset" : 1545,
-                "key.parsed_declaration" : "public var new : Item",
-                "key.parsed_scope.end" : 76,
-                "key.parsed_scope.start" : 76,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Item",
-                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
-                "key.usr" : "s:10ListableUI4ItemV8OnUpdateV3newACyxGvp"
-              }
-            ],
-            "key.typename" : "Item.OnUpdate.Type",
-            "key.typeusr" : "$s10ListableUI4ItemV8OnUpdateVyx_GmD",
-            "key.usr" : "s:10ListableUI4ItemV8OnUpdateV"
-          }
-        ],
-        "key.typename" : "Item.Type",
-        "key.typeusr" : "$s10ListableUI4ItemVyxGmD",
-        "key.usr" : "s:10ListableUI4ItemV"
-      }
-    ]
-  }
-}, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift" : {
-    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 5329,
-    "key.offset" : 0,
-    "key.substructure" : [
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type> where Content : ItemContent<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 83
-          }
-        ],
-        "key.bodylength" : 4945,
-        "key.bodyoffset" : 134,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 7,
-            "key.offset" : 125
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
-        "key.inheritedtypes" : [
-          {
-            "key.name" : "AnyItem"
-          }
-        ],
-        "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 4990,
-        "key.name" : "Item",
-        "key.namelength" : 4,
-        "key.nameoffset" : 97,
-        "key.offset" : 90,
-        "key.parsed_declaration" : "public struct Item : AnyItem",
-        "key.parsed_scope.end" : 172,
-        "key.parsed_scope.start" : 9,
-        "key.substructure" : [
-          {
-            "key.annotated_decl" : "Content : ItemContent<\/Type><\/Declaration>",
-            "key.elements" : [
-              {
-                "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 11,
-                "key.offset" : 110
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-            "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
-            "key.inheritedtypes" : [
-              {
-                "key.name" : "ItemContent"
-              }
-            ],
-            "key.kind" : "source.lang.swift.decl.generic_type_param",
-            "key.length" : 19,
-            "key.name" : "Content",
-            "key.namelength" : 7,
-            "key.nameoffset" : 102,
-            "key.offset" : 102,
-            "key.parsed_declaration" : "public struct Itempublic var identifier: AnyIdentifier<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 139
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> identifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 30,
-            "key.name" : "identifier",
-            "key.namelength" : 10,
-            "key.nameoffset" : 150,
-            "key.offset" : 146,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI7AnyItemP10identifierAA0C10IdentifierCvp"
-              }
-            ],
-            "key.parsed_declaration" : "public var identifier : AnyIdentifier",
-            "key.parsed_scope.end" : 11,
-            "key.parsed_scope.start" : 11,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "AnyIdentifier",
-            "key.typeusr" : "$s10ListableUI13AnyIdentifierCD",
-            "key.usr" : "s:10ListableUI4ItemV10identifierAA13AnyIdentifierCvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var content: Content<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 186
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 21,
-            "key.name" : "content",
-            "key.namelength" : 7,
-            "key.nameoffset" : 197,
-            "key.offset" : 193,
-            "key.parsed_declaration" : "public var content : Content",
-            "key.parsed_scope.end" : 13,
-            "key.parsed_scope.start" : 13,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Content",
-            "key.typeusr" : "$sxD",
-            "key.usr" : "s:10ListableUI4ItemV7contentxvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var sizing: Sizing<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 224
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 19,
-            "key.name" : "sizing",
-            "key.namelength" : 6,
-            "key.nameoffset" : 235,
-            "key.offset" : 231,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI7AnyItemP6sizingAA6SizingOvp"
-              }
-            ],
-            "key.parsed_declaration" : "public var sizing : Sizing",
-            "key.parsed_scope.end" : 15,
-            "key.parsed_scope.start" : 15,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Sizing",
-            "key.typeusr" : "$s10ListableUI6SizingOD",
-            "key.usr" : "s:10ListableUI4ItemV6sizingAA6SizingOvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var layout: ItemLayout<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 255
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: ItemLayout<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 23,
-            "key.name" : "layout",
-            "key.namelength" : 6,
-            "key.nameoffset" : 266,
-            "key.offset" : 262,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI7AnyItemP6layoutAA0D6LayoutVvp"
-              }
-            ],
-            "key.parsed_declaration" : "public var layout : ItemLayout",
-            "key.parsed_scope.end" : 16,
-            "key.parsed_scope.start" : 16,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "ItemLayout",
-            "key.typeusr" : "$s10ListableUI10ItemLayoutVD",
-            "key.usr" : "s:10ListableUI4ItemV6layoutAA0C6LayoutVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var selectionStyle: ItemSelectionStyle<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 295
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectionStyle<\/decl.name>: ItemSelectionStyle<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 39,
-            "key.name" : "selectionStyle",
-            "key.namelength" : 14,
-            "key.nameoffset" : 306,
-            "key.offset" : 302,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI7AnyItemP14selectionStyleAA0d9SelectionF0Ovp"
-              }
-            ],
-            "key.parsed_declaration" : "public var selectionStyle : ItemSelectionStyle",
-            "key.parsed_scope.end" : 18,
-            "key.parsed_scope.start" : 18,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "ItemSelectionStyle",
-            "key.typeusr" : "$s10ListableUI18ItemSelectionStyleOD",
-            "key.usr" : "s:10ListableUI4ItemV14selectionStyleAA0c9SelectionE0Ovp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>?<\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 351
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 62,
-            "key.name" : "insertAndRemoveAnimations",
-            "key.namelength" : 25,
-            "key.nameoffset" : 362,
-            "key.offset" : 358,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI7AnyItemP25insertAndRemoveAnimationsAA0d6InsertfgH0VSgvp"
-              }
-            ],
-            "key.parsed_declaration" : "public var insertAndRemoveAnimations : ItemInsertAndRemoveAnimations?",
-            "key.parsed_scope.end" : 20,
-            "key.parsed_scope.start" : 20,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "ItemInsertAndRemoveAnimations?",
-            "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVSgD",
-            "key.usr" : "s:10ListableUI4ItemV25insertAndRemoveAnimationsAA0c6InsertefG0VSgvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var swipeActions: SwipeActionsConfiguration<\/Type>?<\/Declaration>",
-            "key.attributes" : [
+            "key.annotated_decl" : "public var swipeActions: SwipeActionsConfiguration<\/Type>?<\/Declaration>",
+            "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 430
+                "key.offset" : 432
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> swipeActions<\/decl.name>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 45,
             "key.name" : "swipeActions",
             "key.namelength" : 12,
-            "key.nameoffset" : 441,
-            "key.offset" : 437,
+            "key.nameoffset" : 443,
+            "key.offset" : 439,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI7AnyItemP12swipeActionsAA05SwipeF13ConfigurationVSgvp"
@@ -30113,17 +29647,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 488
+                "key.offset" : 490
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> reordering<\/decl.name>: Reordering<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 28,
             "key.name" : "reordering",
             "key.namelength" : 10,
-            "key.nameoffset" : 499,
-            "key.offset" : 495,
+            "key.nameoffset" : 501,
+            "key.offset" : 497,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI7AnyItemP10reorderingAA10ReorderingVSgvp"
@@ -30144,17 +29678,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 537
+                "key.offset" : 539
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onDisplay<\/decl.name>: OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 35,
             "key.name" : "onDisplay",
             "key.namelength" : 9,
-            "key.nameoffset" : 548,
-            "key.offset" : 544,
+            "key.nameoffset" : 550,
+            "key.offset" : 546,
             "key.parsed_declaration" : "public var onDisplay : OnDisplay.Callback?",
             "key.parsed_scope.end" : 26,
             "key.parsed_scope.start" : 26,
@@ -30170,17 +29704,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 584
+                "key.offset" : 586
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onEndDisplay<\/decl.name>: OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
             "key.name" : "onEndDisplay",
             "key.namelength" : 12,
-            "key.nameoffset" : 595,
-            "key.offset" : 591,
+            "key.nameoffset" : 597,
+            "key.offset" : 593,
             "key.parsed_declaration" : "public var onEndDisplay : OnEndDisplay.Callback?",
             "key.parsed_scope.end" : 27,
             "key.parsed_scope.start" : 27,
@@ -30196,17 +29730,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 642
+                "key.offset" : 644
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onSelect<\/decl.name>: OnSelect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
             "key.name" : "onSelect",
             "key.namelength" : 8,
-            "key.nameoffset" : 653,
-            "key.offset" : 649,
+            "key.nameoffset" : 655,
+            "key.offset" : 651,
             "key.parsed_declaration" : "public var onSelect : OnSelect.Callback?",
             "key.parsed_scope.end" : 29,
             "key.parsed_scope.start" : 29,
@@ -30222,17 +29756,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 687
+                "key.offset" : 689
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onDeselect<\/decl.name>: OnDeselect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 37,
             "key.name" : "onDeselect",
             "key.namelength" : 10,
-            "key.nameoffset" : 698,
-            "key.offset" : 694,
+            "key.nameoffset" : 700,
+            "key.offset" : 696,
             "key.parsed_declaration" : "public var onDeselect : OnDeselect.Callback?",
             "key.parsed_scope.end" : 30,
             "key.parsed_scope.start" : 30,
@@ -30248,17 +29782,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 741
+                "key.offset" : 743
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onInsert<\/decl.name>: OnInsert<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
             "key.name" : "onInsert",
             "key.namelength" : 8,
-            "key.nameoffset" : 752,
-            "key.offset" : 748,
+            "key.nameoffset" : 754,
+            "key.offset" : 750,
             "key.parsed_declaration" : "public var onInsert : OnInsert.Callback?",
             "key.parsed_scope.end" : 32,
             "key.parsed_scope.start" : 32,
@@ -30274,17 +29808,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 786
+                "key.offset" : 788
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onRemove<\/decl.name>: OnRemove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
             "key.name" : "onRemove",
             "key.namelength" : 8,
-            "key.nameoffset" : 797,
-            "key.offset" : 793,
+            "key.nameoffset" : 799,
+            "key.offset" : 795,
             "key.parsed_declaration" : "public var onRemove : OnRemove.Callback?",
             "key.parsed_scope.end" : 33,
             "key.parsed_scope.start" : 33,
@@ -30300,17 +29834,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 831
+                "key.offset" : 833
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onMove<\/decl.name>: OnMove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
             "key.name" : "onMove",
             "key.namelength" : 6,
-            "key.nameoffset" : 842,
-            "key.offset" : 838,
+            "key.nameoffset" : 844,
+            "key.offset" : 840,
             "key.parsed_declaration" : "public var onMove : OnMove.Callback?",
             "key.parsed_scope.end" : 34,
             "key.parsed_scope.start" : 34,
@@ -30326,17 +29860,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 872
+                "key.offset" : 874
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onUpdate<\/decl.name>: OnUpdate<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
             "key.name" : "onUpdate",
             "key.namelength" : 8,
-            "key.nameoffset" : 883,
-            "key.offset" : 879,
+            "key.nameoffset" : 885,
+            "key.offset" : 881,
             "key.parsed_declaration" : "public var onUpdate : OnUpdate.Callback?",
             "key.parsed_scope.end" : 35,
             "key.parsed_scope.start" : 35,
@@ -30352,17 +29886,17 @@
               {
                 "key.attribute" : "source.decl.attribute.internal",
                 "key.length" : 8,
-                "key.offset" : 922
+                "key.offset" : 924
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> let<\/syntaxtype.keyword> reuseIdentifier<\/decl.name>: ReuseIdentifier<\/ref.class><Content<\/ref.generic_type_param>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 46,
             "key.name" : "reuseIdentifier",
             "key.namelength" : 15,
-            "key.nameoffset" : 935,
-            "key.offset" : 931,
+            "key.nameoffset" : 937,
+            "key.offset" : 933,
             "key.parsed_declaration" : "internal let reuseIdentifier : ReuseIdentifier",
             "key.parsed_scope.end" : 37,
             "key.parsed_scope.start" : 37,
@@ -30377,17 +29911,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 987
+                "key.offset" : 989
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
             "key.name" : "debuggingIdentifier",
             "key.namelength" : 19,
-            "key.nameoffset" : 998,
-            "key.offset" : 994,
+            "key.nameoffset" : 1000,
+            "key.offset" : 996,
             "key.parsed_declaration" : "public var debuggingIdentifier : String? = nil",
             "key.parsed_scope.end" : 39,
             "key.parsed_scope.start" : 39,
@@ -30402,7 +29936,7 @@
             "key.name" : "MARK: Initialization",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 1053
+            "key.offset" : 1055
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -30411,17 +29945,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1090
+                "key.offset" : 1092
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.Build<\/decl.name> = (inout<\/syntaxtype.keyword> Item<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 36,
             "key.name" : "Build",
             "key.namelength" : 5,
-            "key.nameoffset" : 1107,
-            "key.offset" : 1097,
+            "key.nameoffset" : 1109,
+            "key.offset" : 1099,
             "key.parsed_declaration" : "public typealias Build = (inout Item) -> ()",
             "key.parsed_scope.end" : 45,
             "key.parsed_scope.start" : 45,
@@ -30436,25 +29970,25 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1143
+                "key.offset" : 1145
               }
             ],
             "key.bodylength" : 62,
-            "key.bodyoffset" : 1214,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.bodyoffset" : 1216,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 127,
             "key.name" : "init(_:build:)",
             "key.namelength" : 62,
-            "key.nameoffset" : 1150,
-            "key.offset" : 1150,
+            "key.nameoffset" : 1152,
+            "key.offset" : 1152,
             "key.parsed_declaration" : "public init(\n    _ content : Content,\n    build : Build\n)",
             "key.parsed_scope.end" : 54,
             "key.parsed_scope.start" : 47,
             "key.related_decls" : [
               {
-                "key.annotated_decl" : "init(_:sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)<\/RelatedName>"
+                "key.annotated_decl" : "init(_:sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)<\/RelatedName>"
               }
             ],
             "key.substructure" : [
@@ -30466,25 +30000,25 @@
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(_ content: Content<\/Type>, sizing: Sizing<\/Type>? = nil, layout: ItemLayout<\/Type>? = nil, selectionStyle: ItemSelectionStyle<\/Type>? = nil, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>? = nil, swipeActions: SwipeActionsConfiguration<\/Type>? = nil, reordering: Reordering<\/Type>? = nil, onDisplay: OnDisplay<\/Type>.Callback<\/Type>? = nil, onEndDisplay: OnEndDisplay<\/Type>.Callback<\/Type>? = nil, onSelect: OnSelect<\/Type>.Callback<\/Type>? = nil, onDeselect: OnDeselect<\/Type>.Callback<\/Type>? = nil, onInsert: OnInsert<\/Type>.Callback<\/Type>? = nil, onRemove: OnRemove<\/Type>.Callback<\/Type>? = nil, onMove: OnMove<\/Type>.Callback<\/Type>? = nil, onUpdate: OnUpdate<\/Type>.Callback<\/Type>? = nil)<\/Declaration>",
+            "key.annotated_decl" : "public init(_ content: Content<\/Type>, sizing: Sizing<\/Type>? = nil, layouts: ItemLayouts<\/Type>? = nil, selectionStyle: ItemSelectionStyle<\/Type>? = nil, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>? = nil, swipeActions: SwipeActionsConfiguration<\/Type>? = nil, reordering: Reordering<\/Type>? = nil, onDisplay: OnDisplay<\/Type>.Callback<\/Type>? = nil, onEndDisplay: OnEndDisplay<\/Type>.Callback<\/Type>? = nil, onSelect: OnSelect<\/Type>.Callback<\/Type>? = nil, onDeselect: OnDeselect<\/Type>.Callback<\/Type>? = nil, onInsert: OnInsert<\/Type>.Callback<\/Type>? = nil, onRemove: OnRemove<\/Type>.Callback<\/Type>? = nil, onMove: OnMove<\/Type>.Callback<\/Type>? = nil, onUpdate: OnUpdate<\/Type>.Callback<\/Type>? = nil)<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1287
+                "key.offset" : 1289
               }
             ],
-            "key.bodylength" : 2045,
-            "key.bodyoffset" : 1996,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: ItemLayout<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, selectionStyle<\/decl.var.parameter.argument_label>: ItemSelectionStyle<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, swipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, reordering<\/decl.var.parameter.argument_label>: Reordering<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDisplay<\/decl.var.parameter.argument_label>: OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onEndDisplay<\/decl.var.parameter.argument_label>: OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onSelect<\/decl.var.parameter.argument_label>: OnSelect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDeselect<\/decl.var.parameter.argument_label>: OnDeselect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onInsert<\/decl.var.parameter.argument_label>: OnInsert<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onRemove<\/decl.var.parameter.argument_label>: OnRemove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onMove<\/decl.var.parameter.argument_label>: OnMove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onUpdate<\/decl.var.parameter.argument_label>: OnUpdate<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.bodylength" : 2055,
+            "key.bodyoffset" : 2000,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: ItemLayouts<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, selectionStyle<\/decl.var.parameter.argument_label>: ItemSelectionStyle<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, swipeActions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, reordering<\/decl.var.parameter.argument_label>: Reordering<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDisplay<\/decl.var.parameter.argument_label>: OnDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onEndDisplay<\/decl.var.parameter.argument_label>: OnEndDisplay<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onSelect<\/decl.var.parameter.argument_label>: OnSelect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onDeselect<\/decl.var.parameter.argument_label>: OnDeselect<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onInsert<\/decl.var.parameter.argument_label>: OnInsert<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onRemove<\/decl.var.parameter.argument_label>: OnRemove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onMove<\/decl.var.parameter.argument_label>: OnMove<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onUpdate<\/decl.var.parameter.argument_label>: OnUpdate<\/ref.struct>.Callback<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 2748,
-            "key.name" : "init(_:sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)",
-            "key.namelength" : 700,
-            "key.nameoffset" : 1294,
-            "key.offset" : 1294,
-            "key.parsed_declaration" : "public init(\n    _ content : Content,\n    sizing : Sizing? = nil,\n    layout : ItemLayout? = nil,\n    selectionStyle : ItemSelectionStyle? = nil,\n    insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,\n    swipeActions : SwipeActionsConfiguration? = nil,\n    reordering : Reordering? = nil,\n    onDisplay : OnDisplay.Callback? = nil,\n    onEndDisplay : OnEndDisplay.Callback? = nil,\n    onSelect : OnSelect.Callback? = nil,\n    onDeselect : OnDeselect.Callback? = nil,\n    onInsert : OnInsert.Callback? = nil,\n    onRemove : OnRemove.Callback? = nil,\n    onMove : OnMove.Callback? = nil,\n    onUpdate : OnUpdate.Callback? = nil\n)",
+            "key.length" : 2760,
+            "key.name" : "init(_:sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)",
+            "key.namelength" : 702,
+            "key.nameoffset" : 1296,
+            "key.offset" : 1296,
+            "key.parsed_declaration" : "public init(\n    _ content : Content,\n    sizing : Sizing? = nil,\n    layouts : ItemLayouts? = nil,\n    selectionStyle : ItemSelectionStyle? = nil,\n    insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,\n    swipeActions : SwipeActionsConfiguration? = nil,\n    reordering : Reordering? = nil,\n    onDisplay : OnDisplay.Callback? = nil,\n    onEndDisplay : OnEndDisplay.Callback? = nil,\n    onSelect : OnSelect.Callback? = nil,\n    onDeselect : OnDeselect.Callback? = nil,\n    onInsert : OnInsert.Callback? = nil,\n    onRemove : OnRemove.Callback? = nil,\n    onMove : OnMove.Callback? = nil,\n    onUpdate : OnUpdate.Callback? = nil\n)",
             "key.parsed_scope.end" : 131,
             "key.parsed_scope.start" : 56,
             "key.related_decls" : [
@@ -30495,9 +30029,9 @@
             "key.substructure" : [
 
             ],
-            "key.typename" : " (Item.Type) -> (Content, Sizing?, ItemLayout?, ItemSelectionStyle?, ItemInsertAndRemoveAnimations?, SwipeActionsConfiguration?, Reordering?, ((Item.OnDisplay) -> ())?, ((Item.OnEndDisplay) -> ())?, ((Item.OnSelect) -> ())?, ((Item.OnDeselect) -> ())?, ((Item.OnInsert) -> ())?, ((Item.OnRemove) -> ())?, ((Item.OnMove) -> ())?, ((Item.OnUpdate) -> ())?) -> Item",
-            "key.typeusr" : "$s_6sizing6layout14selectionStyle25insertAndRemoveAnimations12swipeActions10reordering9onDisplay0l3EndM00L6Select0L8Deselect0L6Insert0lG00L4Move0L6Update10ListableUI4ItemVyxGx_AO6SizingOSgAO0V6LayoutVSgAO0v9SelectionD0OSgAO0vqfgH0VSgAO05SwipeJ13ConfigurationVSgAO10ReorderingVSgyAQ02OnM0Vyx_GcSgyAQ02OnnM0Vyx_GcSgyAQ02OnO0Vyx_GcSgyAQ02OnP0Vyx_GcSgyAQ02OnQ0Vyx_GcSgyAQ02OnG0Vyx_GcSgyAQ02OnR0Vyx_GcSgyAQ02OnS0Vyx_GcSgtcD",
-            "key.usr" : "s:10ListableUI4ItemV_6sizing6layout14selectionStyle25insertAndRemoveAnimations12swipeActions10reordering9onDisplay0o3EndP00O6Select0O8Deselect0O6Insert0oJ00O4Move0O6UpdateACyxGx_AA6SizingOSgAA0C6LayoutVSgAA0c9SelectionG0OSgAA0ctijK0VSgAA05SwipeM13ConfigurationVSgAA10ReorderingVSgyAC02OnP0Vyx_GcSgyAC02OnqP0Vyx_GcSgyAC02OnR0Vyx_GcSgyAC02OnS0Vyx_GcSgyAC02OnT0Vyx_GcSgyAC02OnJ0Vyx_GcSgyAC02OnU0Vyx_GcSgyAC02OnV0Vyx_GcSgtcfc"
+            "key.typename" : " (Item.Type) -> (Content, Sizing?, ItemLayouts?, ItemSelectionStyle?, ItemInsertAndRemoveAnimations?, SwipeActionsConfiguration?, Reordering?, ((Item.OnDisplay) -> ())?, ((Item.OnEndDisplay) -> ())?, ((Item.OnSelect) -> ())?, ((Item.OnDeselect) -> ())?, ((Item.OnInsert) -> ())?, ((Item.OnRemove) -> ())?, ((Item.OnMove) -> ())?, ((Item.OnUpdate) -> ())?) -> Item",
+            "key.typeusr" : "$s_6sizing7layouts14selectionStyle25insertAndRemoveAnimations12swipeActions10reordering9onDisplay0l3EndM00L6Select0L8Deselect0L6Insert0lG00L4Move0L6Update10ListableUI4ItemVyxGx_AO6SizingOSgAO0V7LayoutsVSgAO0v9SelectionD0OSgAO0vqfgH0VSgAO05SwipeJ13ConfigurationVSgAO10ReorderingVSgyAQ02OnM0Vyx_GcSgyAQ02OnnM0Vyx_GcSgyAQ02OnO0Vyx_GcSgyAQ02OnP0Vyx_GcSgyAQ02OnQ0Vyx_GcSgyAQ02OnG0Vyx_GcSgyAQ02OnR0Vyx_GcSgyAQ02OnS0Vyx_GcSgtcD",
+            "key.usr" : "s:10ListableUI4ItemV_6sizing7layouts14selectionStyle25insertAndRemoveAnimations12swipeActions10reordering9onDisplay0o3EndP00O6Select0O8Deselect0O6Insert0oJ00O4Move0O6UpdateACyxGx_AA6SizingOSgAA0C7LayoutsVSgAA0c9SelectionG0OSgAA0ctijK0VSgAA05SwipeM13ConfigurationVSgAA10ReorderingVSgyAC02OnP0Vyx_GcSgyAC02OnqP0Vyx_GcSgyAC02OnR0Vyx_GcSgyAC02OnS0Vyx_GcSgyAC02OnT0Vyx_GcSgyAC02OnJ0Vyx_GcSgyAC02OnU0Vyx_GcSgyAC02OnV0Vyx_GcSgtcfc"
           },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -30505,7 +30039,7 @@
             "key.name" : "MARK: AnyItem",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 4055
+            "key.offset" : 4069
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -30514,19 +30048,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4078
+                "key.offset" : 4092
               }
             ],
             "key.bodylength" : 26,
-            "key.bodyoffset" : 4106,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.bodyoffset" : 4120,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> anyContent<\/decl.name>: Any<\/syntaxtype.keyword><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 48,
             "key.name" : "anyContent",
             "key.namelength" : 10,
-            "key.nameoffset" : 4089,
-            "key.offset" : 4085,
+            "key.nameoffset" : 4103,
+            "key.offset" : 4099,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI7AnyItemP10anyContentypvp"
@@ -30545,7 +30079,7 @@
             "key.name" : "MARK: AnyItem_Internal",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 4146
+            "key.offset" : 4160
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -30554,19 +30088,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4178
+                "key.offset" : 4192
               }
             ],
             "key.bodylength" : 166,
-            "key.bodyoffset" : 4239,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.bodyoffset" : 4253,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> anyIsEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 221,
             "key.name" : "anyIsEquivalent(to:)",
             "key.namelength" : 35,
-            "key.nameoffset" : 4190,
-            "key.offset" : 4185,
+            "key.nameoffset" : 4204,
+            "key.offset" : 4199,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI16AnyItem_InternalP15anyIsEquivalent2toSbAA0cD0_p_tF"
@@ -30589,19 +30123,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4416
+                "key.offset" : 4430
               }
             ],
             "key.bodylength" : 169,
-            "key.bodyoffset" : 4481,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.bodyoffset" : 4495,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> anyWasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 228,
             "key.name" : "anyWasMoved(comparedTo:)",
             "key.namelength" : 39,
-            "key.nameoffset" : 4428,
-            "key.offset" : 4423,
+            "key.nameoffset" : 4442,
+            "key.offset" : 4437,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI16AnyItem_InternalP11anyWasMoved10comparedToSbAA0cD0_p_tF"
@@ -30624,19 +30158,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4661
+                "key.offset" : 4675
               }
             ],
             "key.bodylength" : 226,
-            "key.bodyoffset" : 4851,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.bodyoffset" : 4865,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newPresentationItemState<\/decl.name>(with<\/decl.var.parameter.argument_label> dependencies<\/decl.var.parameter.name>: ItemStateDependencies<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateCallbacks<\/decl.var.parameter.argument_label>: UpdateCallbacks<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, performsContentCallbacks<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Any<\/syntaxtype.keyword><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 410,
             "key.name" : "newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)",
             "key.namelength" : 165,
-            "key.nameoffset" : 4673,
-            "key.offset" : 4668,
+            "key.nameoffset" : 4687,
+            "key.offset" : 4682,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI16AnyItem_InternalP015newPresentationD5State4with15updateCallbacks015performsContentK0ypAA0dH12DependenciesV_AA06UpdateK0CSbtF"
@@ -30660,15 +30194,15 @@
       {
         "key.annotated_decl" : "public struct Item<Content> : AnyItem<\/Type> where Content : ItemContent<\/Type><\/Declaration>",
         "key.bodylength" : 206,
-        "key.bodyoffset" : 5118,
+        "key.bodyoffset" : 5132,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 16,
-            "key.offset" : 5100
+            "key.offset" : 5114
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem<\/ref.protocol> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -30679,8 +30213,8 @@
         "key.length" : 242,
         "key.name" : "Item",
         "key.namelength" : 4,
-        "key.nameoffset" : 5093,
-        "key.offset" : 5083,
+        "key.nameoffset" : 5107,
+        "key.offset" : 5097,
         "key.parsed_declaration" : "extension Item : SignpostLoggable",
         "key.parsed_scope.end" : 183,
         "key.parsed_scope.start" : 175,
@@ -30688,15 +30222,15 @@
           {
             "key.annotated_decl" : "var signpostInfo: SignpostLoggingInfo<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 159,
-            "key.bodyoffset" : 5163,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+            "key.bodyoffset" : 5177,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> signpostInfo<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 200,
             "key.name" : "signpostInfo",
             "key.namelength" : 12,
-            "key.nameoffset" : 5127,
-            "key.offset" : 5123,
+            "key.nameoffset" : 5141,
+            "key.offset" : 5137,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI16SignpostLoggableP12signpostInfoAA0c7LoggingF0Vvp"
@@ -30717,315 +30251,1080 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 11442,
+    "key.length" : 1568,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol ItemContent<\/Declaration>",
+        "key.annotated_decl" : "public struct Item<Content> : AnyItem where Content : ItemContent<\/Type><\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 1291
-          }
-        ],
-        "key.bodylength" : 6190,
-        "key.bodyoffset" : 1362,
-        "key.doc.column" : 17,
-        "key.doc.comment" : "\nAn `ItemContent` is a type used to provide the content of an `Item`\nin a listable section.\n\nA `ItemContent` that displays text might look like this:\n```\nstruct MyItemContent : ItemContent, Equatable\n{\n    var text : String\n\n    var identifier: Identifier {\n        return .init(self.text)\n    }\n\n    static func createReusableContentView(frame : CGRect) -> MyContentView {\n        MyContentView(frame: frame)\n    }\n\n    func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n        views.content.text = self.text\n    }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`",
-        "key.doc.declaration" : "public protocol ItemContent",
-        "key.doc.discussion" : [
-          {
-            "Para" : "A `ItemContent` that displays text might look like this:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method."
-          },
-          {
-            "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`"
+            "key.offset" : 113
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 40,
-        "key.doc.name" : "ItemContent",
-        "key.doc.type" : "Class",
-        "key.doclength" : 1202,
-        "key.docoffset" : 89,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name><\/decl.protocol>",
-        "key.kind" : "source.lang.swift.decl.protocol",
-        "key.length" : 6255,
-        "key.name" : "ItemContent",
-        "key.namelength" : 11,
-        "key.nameoffset" : 1307,
-        "key.offset" : 1298,
-        "key.parsed_declaration" : "public protocol ItemContent where Coordinator.ItemContentType == Self",
-        "key.parsed_scope.end" : 196,
-        "key.parsed_scope.start" : 40,
+        "key.bodylength" : 1430,
+        "key.bodyoffset" : 136,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 1447,
+        "key.name" : "Item",
+        "key.namelength" : 4,
+        "key.nameoffset" : 130,
+        "key.offset" : 120,
+        "key.parsed_declaration" : "public extension Item",
+        "key.parsed_scope.end" : 78,
+        "key.parsed_scope.start" : 11,
         "key.substructure" : [
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 20,
-            "key.name" : "MARK: Identification",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 1377
-          },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var identifier: Identifier<\/Type><Self<\/Type>> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 2084,
-            "key.doc.column" : 9,
-            "key.doc.comment" : "Identifies the content across updates to the list. This value must remain the same,\notherwise the content will be considered a new item, and the old one removed from the list.\n\nDoes not have to be globally unique – the list will make a \"best guess\" if there are multiple items\nwith the same identifier. However, diffing of changes will be more correct with a unique identifier.\n\nIf you're backing your content with some sort of client or server-provided data, consider using its\nserver or client UUID here, or some other unique identifier from the underlying data model.",
-            "key.doc.declaration" : "var identifier: Identifier { get }",
-            "key.doc.discussion" : [
+            "key.annotated_decl" : "struct OnDisplay<\/Declaration>",
+            "key.bodylength" : 141,
+            "key.bodyoffset" : 224,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Value passed to the `onDisplay` callback for `Item`.",
+            "key.doc.declaration" : "struct OnDisplay",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.doc.full_as_xml" : "OnDisplay<\/Name>s:10ListableUI4ItemV9OnDisplayV<\/USR>struct OnDisplay<\/Declaration>Value passed to the onDisplay<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.line" : 14,
+            "key.doc.name" : "OnDisplay",
+            "key.doc.type" : "Class",
+            "key.doclength" : 57,
+            "key.docoffset" : 141,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnDisplay<\/decl.name><\/decl.struct>",
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 164,
+            "key.name" : "OnDisplay",
+            "key.namelength" : 9,
+            "key.nameoffset" : 209,
+            "key.offset" : 202,
+            "key.parsed_declaration" : "struct OnDisplay",
+            "key.parsed_scope.end" : 21,
+            "key.parsed_scope.start" : 14,
+            "key.substructure" : [
               {
-                "Para" : "Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier."
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnDisplay<\/Type>.Callback = (OnDisplay<\/Type>) -> ()<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 233
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnDisplay<\/ref.struct>.Callback<\/decl.name> = (OnDisplay<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
+                "key.kind" : "source.lang.swift.decl.typealias",
+                "key.length" : 38,
+                "key.name" : "Callback",
+                "key.namelength" : 8,
+                "key.nameoffset" : 250,
+                "key.offset" : 240,
+                "key.parsed_declaration" : "public typealias Callback = (OnDisplay) -> ()",
+                "key.parsed_scope.end" : 16,
+                "key.parsed_scope.start" : 16,
+                "key.typename" : "((Item.OnDisplay) -> ()).Type",
+                "key.typeusr" : "$sy10ListableUI4ItemV9OnDisplayVyx_GcmD",
+                "key.usr" : "s:10ListableUI4ItemV9OnDisplayV8Callbacka"
               },
               {
-                "Para" : "If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model."
-              }
-            ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp<\/USR>var identifier: Identifier<Self> { get }<\/Declaration>Identifies the content across updates to the list. This value must remain the same, otherwise the content will be considered a new item, and the old one removed from the list.<\/Para><\/Abstract>Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier.<\/Para>If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model.<\/Para><\/Discussion><\/CommentParts><\/Other>",
-            "key.doc.line" : 54,
-            "key.doc.name" : "identifier",
-            "key.doc.type" : "Other",
-            "key.doclength" : 631,
-            "key.docoffset" : 1414,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.class><Self<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 41,
-            "key.name" : "identifier",
-            "key.namelength" : 10,
-            "key.nameoffset" : 2053,
-            "key.offset" : 2049,
-            "key.parsed_declaration" : "var identifier : Identifier",
-            "key.parsed_scope.end" : 54,
-            "key.parsed_scope.start" : 54,
-            "key.related_decls" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 288
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 15,
+                "key.name" : "item",
+                "key.namelength" : 4,
+                "key.nameoffset" : 299,
+                "key.offset" : 295,
+                "key.parsed_declaration" : "public var item : Item",
+                "key.parsed_scope.end" : 18,
+                "key.parsed_scope.start" : 18,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV9OnDisplayV4itemACyxGvp"
+              },
               {
-                "key.annotated_decl" : "identifier<\/RelatedName>"
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var isFirstDisplay: Bool<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 328
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 25,
+                "key.name" : "isFirstDisplay",
+                "key.namelength" : 14,
+                "key.nameoffset" : 339,
+                "key.offset" : 335,
+                "key.parsed_declaration" : "public var isFirstDisplay : Bool",
+                "key.parsed_scope.end" : 20,
+                "key.parsed_scope.start" : 20,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Bool",
+                "key.typeusr" : "$sSbD",
+                "key.usr" : "s:10ListableUI4ItemV9OnDisplayV07isFirstE0Sbvp"
               }
             ],
-            "key.typename" : "Identifier",
-            "key.typeusr" : "$s10ListableUI10IdentifierCyxGD",
-            "key.usr" : "s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 29,
-            "key.name" : "MARK: Default Item Properties",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 2110
+            "key.typename" : "Item.OnDisplay.Type",
+            "key.typeusr" : "$s10ListableUI4ItemV9OnDisplayVyx_GmD",
+            "key.usr" : "s:10ListableUI4ItemV9OnDisplayV"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var defaultItemProperties: DefaultItemProperties<\/Type><Self<\/Type>> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 2380,
-            "key.doc.column" : 9,
-            "key.doc.comment" : "Default values to assign to various properties on the `Item` which wraps\nthis `ItemContent`, if those values are not passed to the `Item` initializer.",
-            "key.doc.declaration" : "var defaultItemProperties: DefaultItemProperties { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "defaultItemProperties<\/Name>s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp<\/USR>var defaultItemProperties: DefaultItemProperties<Self> { get }<\/Declaration>Default values to assign to various properties on the Item<\/codeVoice> which wraps this ItemContent<\/codeVoice>, if those values are not passed to the Item<\/codeVoice> initializer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 62,
-            "key.doc.name" : "defaultItemProperties",
-            "key.doc.type" : "Other",
-            "key.doclength" : 163,
-            "key.docoffset" : 2156,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultItemProperties<\/decl.name>: DefaultItemProperties<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 63,
-            "key.name" : "defaultItemProperties",
-            "key.namelength" : 21,
-            "key.nameoffset" : 2327,
-            "key.offset" : 2323,
-            "key.parsed_declaration" : "var defaultItemProperties : DefaultItemProperties",
-            "key.parsed_scope.end" : 62,
-            "key.parsed_scope.start" : 62,
-            "key.related_decls" : [
+            "key.annotated_decl" : "struct OnEndDisplay<\/Declaration>",
+            "key.bodylength" : 147,
+            "key.bodyoffset" : 465,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Value passed to the `onEndDisplay` callback for `Item`.",
+            "key.doc.declaration" : "struct OnEndDisplay",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.doc.full_as_xml" : "OnEndDisplay<\/Name>s:10ListableUI4ItemV12OnEndDisplayV<\/USR>struct OnEndDisplay<\/Declaration>Value passed to the onEndDisplay<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.line" : 24,
+            "key.doc.name" : "OnEndDisplay",
+            "key.doc.type" : "Class",
+            "key.doclength" : 60,
+            "key.docoffset" : 376,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnEndDisplay<\/decl.name><\/decl.struct>",
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 173,
+            "key.name" : "OnEndDisplay",
+            "key.namelength" : 12,
+            "key.nameoffset" : 447,
+            "key.offset" : 440,
+            "key.parsed_declaration" : "struct OnEndDisplay",
+            "key.parsed_scope.end" : 31,
+            "key.parsed_scope.start" : 24,
+            "key.substructure" : [
               {
-                "key.annotated_decl" : "defaultItemProperties<\/RelatedName>"
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnEndDisplay<\/Type>.Callback = (OnEndDisplay<\/Type>) -> ()<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 474
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnEndDisplay<\/ref.struct>.Callback<\/decl.name> = (OnEndDisplay<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
+                "key.kind" : "source.lang.swift.decl.typealias",
+                "key.length" : 41,
+                "key.name" : "Callback",
+                "key.namelength" : 8,
+                "key.nameoffset" : 491,
+                "key.offset" : 481,
+                "key.parsed_declaration" : "public typealias Callback = (OnEndDisplay) -> ()",
+                "key.parsed_scope.end" : 26,
+                "key.parsed_scope.start" : 26,
+                "key.typename" : "((Item.OnEndDisplay) -> ()).Type",
+                "key.typeusr" : "$sy10ListableUI4ItemV12OnEndDisplayVyx_GcmD",
+                "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV8Callbacka"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 532
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 15,
+                "key.name" : "item",
+                "key.namelength" : 4,
+                "key.nameoffset" : 543,
+                "key.offset" : 539,
+                "key.parsed_declaration" : "public var item : Item",
+                "key.parsed_scope.end" : 28,
+                "key.parsed_scope.start" : 28,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV4itemACyxGvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var isFirstEndDisplay: Bool<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 572
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstEndDisplay<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 28,
+                "key.name" : "isFirstEndDisplay",
+                "key.namelength" : 17,
+                "key.nameoffset" : 583,
+                "key.offset" : 579,
+                "key.parsed_declaration" : "public var isFirstEndDisplay : Bool",
+                "key.parsed_scope.end" : 30,
+                "key.parsed_scope.start" : 30,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Bool",
+                "key.typeusr" : "$sSbD",
+                "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV07isFirsteF0Sbvp"
               }
             ],
-            "key.typename" : "DefaultItemProperties",
-            "key.typeusr" : "$s10ListableUI21DefaultItemPropertiesVyxGD",
-            "key.usr" : "s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 32,
-            "key.name" : "MARK: Applying To Displayed View",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 2406
+            "key.typename" : "Item.OnEndDisplay.Type",
+            "key.typeusr" : "$s10ListableUI4ItemV12OnEndDisplayVyx_GmD",
+            "key.usr" : "s:10ListableUI4ItemV12OnEndDisplayV"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func apply(to views: ItemContentViews<\/Type><Self<\/Type>>, for reason: ApplyReason<\/Type>, with info: ApplyItemContentInfo<\/Type>)<\/Declaration>",
-            "key.doc.column" : 10,
-            "key.doc.comment" : "Called when rendering the content. This is where you should push data from your\ncontent into the passed in views.\n\nDo not retain a reference to the passed in views – they are reused by the list.",
-            "key.doc.declaration" : "func apply(to views: ItemContentViews, for reason: ApplyReason, with info: ApplyItemContentInfo)",
-            "key.doc.discussion" : [
+            "key.annotated_decl" : "struct OnSelect<\/Declaration>",
+            "key.bodylength" : 98,
+            "key.bodyoffset" : 704,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Value passed to the `onSelect` callback for `Item`.",
+            "key.doc.declaration" : "struct OnSelect",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.doc.full_as_xml" : "OnSelect<\/Name>s:10ListableUI4ItemV8OnSelectV<\/USR>struct OnSelect<\/Declaration>Value passed to the onSelect<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.line" : 34,
+            "key.doc.name" : "OnSelect",
+            "key.doc.type" : "Class",
+            "key.doclength" : 56,
+            "key.docoffset" : 623,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnSelect<\/decl.name><\/decl.struct>",
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 120,
+            "key.name" : "OnSelect",
+            "key.namelength" : 8,
+            "key.nameoffset" : 690,
+            "key.offset" : 683,
+            "key.parsed_declaration" : "struct OnSelect",
+            "key.parsed_scope.end" : 39,
+            "key.parsed_scope.start" : 34,
+            "key.substructure" : [
               {
-                "Para" : "Do not retain a reference to the passed in views – they are reused by the list."
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnSelect<\/Type>.Callback = (OnSelect<\/Type>) -> ()<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 713
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnSelect<\/ref.struct>.Callback<\/decl.name> = (OnSelect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
+                "key.kind" : "source.lang.swift.decl.typealias",
+                "key.length" : 37,
+                "key.name" : "Callback",
+                "key.namelength" : 8,
+                "key.nameoffset" : 730,
+                "key.offset" : 720,
+                "key.parsed_declaration" : "public typealias Callback = (OnSelect) -> ()",
+                "key.parsed_scope.end" : 36,
+                "key.parsed_scope.start" : 36,
+                "key.typename" : "((Item.OnSelect) -> ()).Type",
+                "key.typeusr" : "$sy10ListableUI4ItemV8OnSelectVyx_GcmD",
+                "key.usr" : "s:10ListableUI4ItemV8OnSelectV8Callbacka"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 775
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 15,
+                "key.name" : "item",
+                "key.namelength" : 4,
+                "key.nameoffset" : 786,
+                "key.offset" : 782,
+                "key.parsed_declaration" : "public var item : Item",
+                "key.parsed_scope.end" : 38,
+                "key.parsed_scope.start" : 38,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV8OnSelectV4itemACyxGvp"
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "apply(to:for:with:)<\/Name>s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF<\/USR>func apply(to views: ItemContentViews<Self>, for reason: ApplyReason, with info: ApplyItemContentInfo)<\/Declaration>Called when rendering the content. This is where you should push data from your content into the passed in views.<\/Para><\/Abstract>Do not retain a reference to the passed in views – they are reused by the list.<\/Para><\/Discussion><\/CommentParts><\/Function>",
-            "key.doc.line" : 74,
-            "key.doc.name" : "apply(to:for:with:)",
-            "key.doc.type" : "Function",
-            "key.doclength" : 228,
-            "key.docoffset" : 2459,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: ItemContentViews<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 134,
-            "key.name" : "apply(to:for:with:)",
-            "key.namelength" : 129,
-            "key.nameoffset" : 2697,
-            "key.offset" : 2692,
-            "key.parsed_declaration" : "func apply(\n    to views : ItemContentViews,\n    for reason: ApplyReason,\n    with info : ApplyItemContentInfo\n)",
-            "key.parsed_scope.end" : 74,
-            "key.parsed_scope.start" : 74,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : " (Self) -> (ItemContentViews, ApplyReason, ApplyItemContentInfo) -> ()",
-            "key.typeusr" : "$s2to3for4withy10ListableUI16ItemContentViewsVyxG_AD11ApplyReasonOAD0ifG4InfoVtcD",
-            "key.usr" : "s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 22,
-            "key.name" : "MARK: Tracking Changes",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 2846
+            "key.typename" : "Item.OnSelect.Type",
+            "key.typeusr" : "$s10ListableUI4ItemV8OnSelectVyx_GmD",
+            "key.usr" : "s:10ListableUI4ItemV8OnSelectV"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func wasMoved(comparedTo other: Self<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.doc.column" : 10,
-            "key.doc.comment" : "Return true if the content's sort changed based on the old value passed into the function.\n\nThe list view uses the value of this method to be more intelligent about what has moved within the list.\n\nNote\n----\nThere is a default implementation of this method which simply calls `isEquivalent`.",
-            "key.doc.declaration" : "func wasMoved(comparedTo other: Self) -> Bool",
-            "key.doc.discussion" : [
+            "key.annotated_decl" : "struct OnDeselect<\/Declaration>",
+            "key.bodylength" : 92,
+            "key.bodyoffset" : 898,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Value passed to the `onDeselect` callback for `Item`.",
+            "key.doc.declaration" : "struct OnDeselect",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.doc.full_as_xml" : "OnDeselect<\/Name>s:10ListableUI4ItemV10OnDeselectV<\/USR>struct OnDeselect<\/Declaration>Value passed to the onDeselect<\/codeVoice> callback for Item<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.line" : 42,
+            "key.doc.name" : "OnDeselect",
+            "key.doc.type" : "Class",
+            "key.doclength" : 58,
+            "key.docoffset" : 813,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnDeselect<\/decl.name><\/decl.struct>",
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 116,
+            "key.name" : "OnDeselect",
+            "key.namelength" : 10,
+            "key.nameoffset" : 882,
+            "key.offset" : 875,
+            "key.parsed_declaration" : "struct OnDeselect",
+            "key.parsed_scope.end" : 47,
+            "key.parsed_scope.start" : 42,
+            "key.substructure" : [
               {
-                "Para" : "The list view uses the value of this method to be more intelligent about what has moved within the list."
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnDeselect<\/Type>.Callback = (OnDeselect<\/Type>) -> ()<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 907
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnDeselect<\/ref.struct>.Callback<\/decl.name> = (OnDeselect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
+                "key.kind" : "source.lang.swift.decl.typealias",
+                "key.length" : 39,
+                "key.name" : "Callback",
+                "key.namelength" : 8,
+                "key.nameoffset" : 924,
+                "key.offset" : 914,
+                "key.parsed_declaration" : "public typealias Callback = (OnDeselect) -> ()",
+                "key.parsed_scope.end" : 44,
+                "key.parsed_scope.start" : 44,
+                "key.typename" : "((Item.OnDeselect) -> ()).Type",
+                "key.typeusr" : "$sy10ListableUI4ItemV10OnDeselectVyx_GcmD",
+                "key.usr" : "s:10ListableUI4ItemV10OnDeselectV8Callbacka"
               },
               {
-                "Para" : "There is a default implementation of this method which simply calls `isEquivalent`."
-              }
-            ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "wasMoved(comparedTo:)<\/Name>s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF<\/USR>func wasMoved(comparedTo other: Self) -> Bool<\/Declaration>Return true if the content’s sort changed based on the old value passed into the function.<\/Para><\/Abstract>The list view uses the value of this method to be more intelligent about what has moved within the list.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method which simply calls isEquivalent<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>",
-            "key.doc.line" : 93,
-            "key.doc.name" : "wasMoved(comparedTo:)",
-            "key.doc.type" : "Function",
-            "key.doclength" : 338,
-            "key.docoffset" : 2885,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 46,
-            "key.name" : "wasMoved(comparedTo:)",
-            "key.namelength" : 33,
-            "key.nameoffset" : 3233,
-            "key.offset" : 3228,
-            "key.parsed_declaration" : "func wasMoved(comparedTo other : Self) -> Bool",
-            "key.parsed_scope.end" : 93,
-            "key.parsed_scope.start" : 93,
-            "key.related_decls" : [
-              {
-                "key.annotated_decl" : "wasMoved(comparedTo: Self) -> Bool<\/RelatedName>"
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 963
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 15,
+                "key.name" : "item",
+                "key.namelength" : 4,
+                "key.nameoffset" : 974,
+                "key.offset" : 970,
+                "key.parsed_declaration" : "public var item : Item",
+                "key.parsed_scope.end" : 46,
+                "key.parsed_scope.start" : 46,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV10OnDeselectV4itemACyxGvp"
               }
             ],
-            "key.substructure" : [
-
-            ],
-            "key.typename" : " (Self) -> (Self) -> Bool",
-            "key.typeusr" : "$s10comparedToSbx_tcD",
-            "key.usr" : "s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF"
+            "key.typename" : "Item.OnDeselect.Type",
+            "key.typeusr" : "$s10ListableUI4ItemV10OnDeselectVyx_GmD",
+            "key.usr" : "s:10ListableUI4ItemV10OnDeselectV"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func isEquivalent(to other: Self<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.doc.column" : 10,
-            "key.doc.comment" : "Return false if the content' changed based on the old value passed into the function.\n\nIf this method returns false, the row representing the content is reloaded.\n\nNote\n----\nThere is a default implementation of this method when `ItemContent ` conforms to `Equatable`\nwhich returns `self == other`.",
-            "key.doc.declaration" : "func isEquivalent(to other: Self) -> Bool",
-            "key.doc.discussion" : [
+            "key.annotated_decl" : "struct OnInsert<\/Declaration>",
+            "key.bodylength" : 98,
+            "key.bodyoffset" : 1022,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnInsert<\/decl.name><\/decl.struct>",
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 120,
+            "key.name" : "OnInsert",
+            "key.namelength" : 8,
+            "key.nameoffset" : 1008,
+            "key.offset" : 1001,
+            "key.parsed_declaration" : "struct OnInsert",
+            "key.parsed_scope.end" : 54,
+            "key.parsed_scope.start" : 49,
+            "key.substructure" : [
               {
-                "Para" : "If this method returns false, the row representing the content is reloaded."
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnInsert<\/Type>.Callback = (OnInsert<\/Type>) -> ()<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1031
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnInsert<\/ref.struct>.Callback<\/decl.name> = (OnInsert<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
+                "key.kind" : "source.lang.swift.decl.typealias",
+                "key.length" : 37,
+                "key.name" : "Callback",
+                "key.namelength" : 8,
+                "key.nameoffset" : 1048,
+                "key.offset" : 1038,
+                "key.parsed_declaration" : "public typealias Callback = (OnInsert) -> ()",
+                "key.parsed_scope.end" : 51,
+                "key.parsed_scope.start" : 51,
+                "key.typename" : "((Item.OnInsert) -> ()).Type",
+                "key.typeusr" : "$sy10ListableUI4ItemV8OnInsertVyx_GcmD",
+                "key.usr" : "s:10ListableUI4ItemV8OnInsertV8Callbacka"
               },
               {
-                "Para" : "There is a default implementation of this method when `ItemContent ` conforms to `Equatable` which returns `self == other`."
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1093
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 15,
+                "key.name" : "item",
+                "key.namelength" : 4,
+                "key.nameoffset" : 1104,
+                "key.offset" : 1100,
+                "key.parsed_declaration" : "public var item : Item",
+                "key.parsed_scope.end" : 53,
+                "key.parsed_scope.start" : 53,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV8OnInsertV4itemACyxGvp"
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Return false if the content’ changed based on the old value passed into the function.<\/Para><\/Abstract>If this method returns false, the row representing the content is reloaded.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method when ItemContent <\/codeVoice> conforms to Equatable<\/codeVoice> which returns self == other<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>",
-            "key.doc.line" : 105,
-            "key.doc.name" : "isEquivalent(to:)",
-            "key.doc.type" : "Function",
-            "key.doclength" : 349,
-            "key.docoffset" : 3284,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 42,
-            "key.name" : "isEquivalent(to:)",
-            "key.namelength" : 29,
-            "key.nameoffset" : 3643,
-            "key.offset" : 3638,
-            "key.parsed_declaration" : "func isEquivalent(to other : Self) -> Bool",
-            "key.parsed_scope.end" : 105,
-            "key.parsed_scope.start" : 105,
-            "key.related_decls" : [
+            "key.typename" : "Item.OnInsert.Type",
+            "key.typeusr" : "$s10ListableUI4ItemV8OnInsertVyx_GmD",
+            "key.usr" : "s:10ListableUI4ItemV8OnInsertV"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "struct OnRemove<\/Declaration>",
+            "key.bodylength" : 98,
+            "key.bodyoffset" : 1152,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnRemove<\/decl.name><\/decl.struct>",
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 120,
+            "key.name" : "OnRemove",
+            "key.namelength" : 8,
+            "key.nameoffset" : 1138,
+            "key.offset" : 1131,
+            "key.parsed_declaration" : "struct OnRemove",
+            "key.parsed_scope.end" : 61,
+            "key.parsed_scope.start" : 56,
+            "key.substructure" : [
               {
-                "key.annotated_decl" : "isEquivalent(to: Self) -> Bool<\/RelatedName>"
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnRemove<\/Type>.Callback = (OnRemove<\/Type>) -> ()<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1161
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnRemove<\/ref.struct>.Callback<\/decl.name> = (OnRemove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
+                "key.kind" : "source.lang.swift.decl.typealias",
+                "key.length" : 37,
+                "key.name" : "Callback",
+                "key.namelength" : 8,
+                "key.nameoffset" : 1178,
+                "key.offset" : 1168,
+                "key.parsed_declaration" : "public typealias Callback = (OnRemove) -> ()",
+                "key.parsed_scope.end" : 58,
+                "key.parsed_scope.start" : 58,
+                "key.typename" : "((Item.OnRemove) -> ()).Type",
+                "key.typeusr" : "$sy10ListableUI4ItemV8OnRemoveVyx_GcmD",
+                "key.usr" : "s:10ListableUI4ItemV8OnRemoveV8Callbacka"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var item: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1223
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 15,
+                "key.name" : "item",
+                "key.namelength" : 4,
+                "key.nameoffset" : 1234,
+                "key.offset" : 1230,
+                "key.parsed_declaration" : "public var item : Item",
+                "key.parsed_scope.end" : 60,
+                "key.parsed_scope.start" : 60,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV8OnRemoveV4itemACyxGvp"
               }
             ],
-            "key.substructure" : [
-
-            ],
-            "key.typename" : " (Self) -> (Self) -> Bool",
-            "key.typeusr" : "$s2toSbx_tcD",
-            "key.usr" : "s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 45,
-            "key.name" : "MARK: Creating & Providing Swipe Action Views",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 3700
+            "key.typename" : "Item.OnRemove.Type",
+            "key.typeusr" : "$s10ListableUI4ItemV8OnRemoveVyx_GmD",
+            "key.usr" : "s:10ListableUI4ItemV8OnRemoveV"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "associatedtype SwipeActionsView : ItemContentSwipeActionsView<\/Type> = DefaultSwipeActionsView<\/Type><\/Declaration>",
-            "key.doc.column" : 20,
-            "key.doc.comment" : "The view type to use to render swipe actions (delete, etc) for this content.\nA default implementation, which matches `UITableView`, is provided.",
-            "key.doc.declaration" : "associatedtype SwipeActionsView : ListableUI.ItemContentSwipeActionsView = ListableUI.DefaultSwipeActionsView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "SwipeActionsView<\/Name>s:10ListableUI11ItemContentP16SwipeActionsViewQa<\/USR>associatedtype SwipeActionsView : ListableUI.ItemContentSwipeActionsView = ListableUI.DefaultSwipeActionsView<\/Declaration>The view type to use to render swipe actions (delete, etc) for this content. A default implementation, which matches UITableView<\/codeVoice>, is provided.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 113,
-            "key.doc.name" : "SwipeActionsView",
-            "key.doc.type" : "Other",
+            "key.annotated_decl" : "struct OnMove<\/Declaration>",
+            "key.bodylength" : 125,
+            "key.bodyoffset" : 1280,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnMove<\/decl.name><\/decl.struct>",
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 145,
+            "key.name" : "OnMove",
+            "key.namelength" : 6,
+            "key.nameoffset" : 1268,
+            "key.offset" : 1261,
+            "key.parsed_declaration" : "struct OnMove",
+            "key.parsed_scope.end" : 69,
+            "key.parsed_scope.start" : 63,
+            "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnMove<\/Type>.Callback = (OnMove<\/Type>) -> ()<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1289
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnMove<\/ref.struct>.Callback<\/decl.name> = (OnMove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
+                "key.kind" : "source.lang.swift.decl.typealias",
+                "key.length" : 35,
+                "key.name" : "Callback",
+                "key.namelength" : 8,
+                "key.nameoffset" : 1306,
+                "key.offset" : 1296,
+                "key.parsed_declaration" : "public typealias Callback = (OnMove) -> ()",
+                "key.parsed_scope.end" : 65,
+                "key.parsed_scope.start" : 65,
+                "key.typename" : "((Item.OnMove) -> ()).Type",
+                "key.typeusr" : "$sy10ListableUI4ItemV6OnMoveVyx_GcmD",
+                "key.usr" : "s:10ListableUI4ItemV6OnMoveV8Callbacka"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var old: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1349
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> old<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 14,
+                "key.name" : "old",
+                "key.namelength" : 3,
+                "key.nameoffset" : 1360,
+                "key.offset" : 1356,
+                "key.parsed_declaration" : "public var old : Item",
+                "key.parsed_scope.end" : 67,
+                "key.parsed_scope.start" : 67,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV6OnMoveV3oldACyxGvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var new: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1379
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> new<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 14,
+                "key.name" : "new",
+                "key.namelength" : 3,
+                "key.nameoffset" : 1390,
+                "key.offset" : 1386,
+                "key.parsed_declaration" : "public var new : Item",
+                "key.parsed_scope.end" : 68,
+                "key.parsed_scope.start" : 68,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV6OnMoveV3newACyxGvp"
+              }
+            ],
+            "key.typename" : "Item.OnMove.Type",
+            "key.typeusr" : "$s10ListableUI4ItemV6OnMoveVyx_GmD",
+            "key.usr" : "s:10ListableUI4ItemV6OnMoveV"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "struct OnUpdate<\/Declaration>",
+            "key.bodylength" : 127,
+            "key.bodyoffset" : 1437,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> OnUpdate<\/decl.name><\/decl.struct>",
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 149,
+            "key.name" : "OnUpdate",
+            "key.namelength" : 8,
+            "key.nameoffset" : 1423,
+            "key.offset" : 1416,
+            "key.parsed_declaration" : "struct OnUpdate",
+            "key.parsed_scope.end" : 77,
+            "key.parsed_scope.start" : 71,
+            "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public typealias Item<\/Type><Content>.OnUpdate<\/Type>.Callback = (OnUpdate<\/Type>) -> ()<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1446
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Item<\/ref.struct><Content>.OnUpdate<\/ref.struct>.Callback<\/decl.name> = (OnUpdate<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
+                "key.kind" : "source.lang.swift.decl.typealias",
+                "key.length" : 37,
+                "key.name" : "Callback",
+                "key.namelength" : 8,
+                "key.nameoffset" : 1463,
+                "key.offset" : 1453,
+                "key.parsed_declaration" : "public typealias Callback = (OnUpdate) -> ()",
+                "key.parsed_scope.end" : 73,
+                "key.parsed_scope.start" : 73,
+                "key.typename" : "((Item.OnUpdate) -> ()).Type",
+                "key.typeusr" : "$sy10ListableUI4ItemV8OnUpdateVyx_GcmD",
+                "key.usr" : "s:10ListableUI4ItemV8OnUpdateV8Callbacka"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var old: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1508
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> old<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 14,
+                "key.name" : "old",
+                "key.namelength" : 3,
+                "key.nameoffset" : 1519,
+                "key.offset" : 1515,
+                "key.parsed_declaration" : "public var old : Item",
+                "key.parsed_scope.end" : 75,
+                "key.parsed_scope.start" : 75,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV8OnUpdateV3oldACyxGvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var new: Item<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 1538
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemCallbacks.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> new<\/decl.name>: Item<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 14,
+                "key.name" : "new",
+                "key.namelength" : 3,
+                "key.nameoffset" : 1549,
+                "key.offset" : 1545,
+                "key.parsed_declaration" : "public var new : Item",
+                "key.parsed_scope.end" : 76,
+                "key.parsed_scope.start" : 76,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "Item",
+                "key.typeusr" : "$s10ListableUI4ItemVyxGD",
+                "key.usr" : "s:10ListableUI4ItemV8OnUpdateV3newACyxGvp"
+              }
+            ],
+            "key.typename" : "Item.OnUpdate.Type",
+            "key.typeusr" : "$s10ListableUI4ItemV8OnUpdateVyx_GmD",
+            "key.usr" : "s:10ListableUI4ItemV8OnUpdateV"
+          }
+        ],
+        "key.typename" : "Item.Type",
+        "key.typeusr" : "$s10ListableUI4ItemVyxGmD",
+        "key.usr" : "s:10ListableUI4ItemV"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 11442,
+    "key.offset" : 0,
+    "key.substructure" : [
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol ItemContent<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 1291
+          }
+        ],
+        "key.bodylength" : 6190,
+        "key.bodyoffset" : 1362,
+        "key.doc.column" : 17,
+        "key.doc.comment" : "\nAn `ItemContent` is a type used to provide the content of an `Item`\nin a listable section.\n\nA `ItemContent` that displays text might look like this:\n```\nstruct MyItemContent : ItemContent, Equatable\n{\n    var text : String\n\n    var identifier: Identifier {\n        return .init(self.text)\n    }\n\n    static func createReusableContentView(frame : CGRect) -> MyContentView {\n        MyContentView(frame: frame)\n    }\n\n    func apply(to views : ItemContentViews, for reason: ApplyReason, with info : ApplyItemContentInfo) {\n        views.content.text = self.text\n    }\n}\n```\nIf you want to add support for rendering a background view and a selected or highlighted state, you should provide\nboth `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods,\nand apply the desired content in your `apply(to:)` method.\n\nThe ordering of the elements by z-index is as follows:\nz-index 3) `ContentView`\nz-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.)\nz-index 1) `BackgroundView`",
+        "key.doc.declaration" : "public protocol ItemContent",
+        "key.doc.discussion" : [
+          {
+            "Para" : "A `ItemContent` that displays text might look like this:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "If you want to add support for rendering a background view and a selected or highlighted state, you should provide both `createReusableBackgroundView` and `createReusableSelectedBackgroundView` methods, and apply the desired content in your `apply(to:)` method."
+          },
+          {
+            "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`"
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 40,
+        "key.doc.name" : "ItemContent",
+        "key.doc.type" : "Class",
+        "key.doclength" : 1202,
+        "key.docoffset" : 89,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name><\/decl.protocol>",
+        "key.kind" : "source.lang.swift.decl.protocol",
+        "key.length" : 6255,
+        "key.name" : "ItemContent",
+        "key.namelength" : 11,
+        "key.nameoffset" : 1307,
+        "key.offset" : 1298,
+        "key.parsed_declaration" : "public protocol ItemContent where Coordinator.ItemContentType == Self",
+        "key.parsed_scope.end" : 196,
+        "key.parsed_scope.start" : 40,
+        "key.substructure" : [
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 20,
+            "key.name" : "MARK: Identification",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 1377
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var identifier: Identifier<\/Type><Self<\/Type>> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 2084,
+            "key.doc.column" : 9,
+            "key.doc.comment" : "Identifies the content across updates to the list. This value must remain the same,\notherwise the content will be considered a new item, and the old one removed from the list.\n\nDoes not have to be globally unique – the list will make a \"best guess\" if there are multiple items\nwith the same identifier. However, diffing of changes will be more correct with a unique identifier.\n\nIf you're backing your content with some sort of client or server-provided data, consider using its\nserver or client UUID here, or some other unique identifier from the underlying data model.",
+            "key.doc.declaration" : "var identifier: Identifier { get }",
+            "key.doc.discussion" : [
+              {
+                "Para" : "Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier."
+              },
+              {
+                "Para" : "If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model."
+              }
+            ],
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp<\/USR>var identifier: Identifier<Self> { get }<\/Declaration>Identifies the content across updates to the list. This value must remain the same, otherwise the content will be considered a new item, and the old one removed from the list.<\/Para><\/Abstract>Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier.<\/Para>If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.line" : 54,
+            "key.doc.name" : "identifier",
+            "key.doc.type" : "Other",
+            "key.doclength" : 631,
+            "key.docoffset" : 1414,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.class><Self<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 41,
+            "key.name" : "identifier",
+            "key.namelength" : 10,
+            "key.nameoffset" : 2053,
+            "key.offset" : 2049,
+            "key.parsed_declaration" : "var identifier : Identifier",
+            "key.parsed_scope.end" : 54,
+            "key.parsed_scope.start" : 54,
+            "key.related_decls" : [
+              {
+                "key.annotated_decl" : "identifier<\/RelatedName>"
+              }
+            ],
+            "key.typename" : "Identifier",
+            "key.typeusr" : "$s10ListableUI10IdentifierCyxGD",
+            "key.usr" : "s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 29,
+            "key.name" : "MARK: Default Item Properties",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 2110
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var defaultItemProperties: DefaultItemProperties<\/Type><Self<\/Type>> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 2380,
+            "key.doc.column" : 9,
+            "key.doc.comment" : "Default values to assign to various properties on the `Item` which wraps\nthis `ItemContent`, if those values are not passed to the `Item` initializer.",
+            "key.doc.declaration" : "var defaultItemProperties: DefaultItemProperties { get }",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "defaultItemProperties<\/Name>s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp<\/USR>var defaultItemProperties: DefaultItemProperties<Self> { get }<\/Declaration>Default values to assign to various properties on the Item<\/codeVoice> which wraps this ItemContent<\/codeVoice>, if those values are not passed to the Item<\/codeVoice> initializer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 62,
+            "key.doc.name" : "defaultItemProperties",
+            "key.doc.type" : "Other",
+            "key.doclength" : 163,
+            "key.docoffset" : 2156,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultItemProperties<\/decl.name>: DefaultItemProperties<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 63,
+            "key.name" : "defaultItemProperties",
+            "key.namelength" : 21,
+            "key.nameoffset" : 2327,
+            "key.offset" : 2323,
+            "key.parsed_declaration" : "var defaultItemProperties : DefaultItemProperties",
+            "key.parsed_scope.end" : 62,
+            "key.parsed_scope.start" : 62,
+            "key.related_decls" : [
+              {
+                "key.annotated_decl" : "defaultItemProperties<\/RelatedName>"
+              }
+            ],
+            "key.typename" : "DefaultItemProperties",
+            "key.typeusr" : "$s10ListableUI21DefaultItemPropertiesVyxGD",
+            "key.usr" : "s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 32,
+            "key.name" : "MARK: Applying To Displayed View",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 2406
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func apply(to views: ItemContentViews<\/Type><Self<\/Type>>, for reason: ApplyReason<\/Type>, with info: ApplyItemContentInfo<\/Type>)<\/Declaration>",
+            "key.doc.column" : 10,
+            "key.doc.comment" : "Called when rendering the content. This is where you should push data from your\ncontent into the passed in views.\n\nDo not retain a reference to the passed in views – they are reused by the list.",
+            "key.doc.declaration" : "func apply(to views: ItemContentViews, for reason: ApplyReason, with info: ApplyItemContentInfo)",
+            "key.doc.discussion" : [
+              {
+                "Para" : "Do not retain a reference to the passed in views – they are reused by the list."
+              }
+            ],
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "apply(to:for:with:)<\/Name>s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF<\/USR>func apply(to views: ItemContentViews<Self>, for reason: ApplyReason, with info: ApplyItemContentInfo)<\/Declaration>Called when rendering the content. This is where you should push data from your content into the passed in views.<\/Para><\/Abstract>Do not retain a reference to the passed in views – they are reused by the list.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.line" : 74,
+            "key.doc.name" : "apply(to:for:with:)",
+            "key.doc.type" : "Function",
+            "key.doclength" : 228,
+            "key.docoffset" : 2459,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> views<\/decl.var.parameter.name>: ItemContentViews<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: ApplyReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: ApplyItemContentInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 134,
+            "key.name" : "apply(to:for:with:)",
+            "key.namelength" : 129,
+            "key.nameoffset" : 2697,
+            "key.offset" : 2692,
+            "key.parsed_declaration" : "func apply(\n    to views : ItemContentViews,\n    for reason: ApplyReason,\n    with info : ApplyItemContentInfo\n)",
+            "key.parsed_scope.end" : 74,
+            "key.parsed_scope.start" : 74,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : " (Self) -> (ItemContentViews, ApplyReason, ApplyItemContentInfo) -> ()",
+            "key.typeusr" : "$s2to3for4withy10ListableUI16ItemContentViewsVyxG_AD11ApplyReasonOAD0ifG4InfoVtcD",
+            "key.usr" : "s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 22,
+            "key.name" : "MARK: Tracking Changes",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 2846
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func wasMoved(comparedTo other: Self<\/Type>) -> Bool<\/Type><\/Declaration>",
+            "key.doc.column" : 10,
+            "key.doc.comment" : "Return true if the content's sort changed based on the old value passed into the function.\n\nThe list view uses the value of this method to be more intelligent about what has moved within the list.\n\nNote\n----\nThere is a default implementation of this method which simply calls `isEquivalent`.",
+            "key.doc.declaration" : "func wasMoved(comparedTo other: Self) -> Bool",
+            "key.doc.discussion" : [
+              {
+                "Para" : "The list view uses the value of this method to be more intelligent about what has moved within the list."
+              },
+              {
+                "Para" : "There is a default implementation of this method which simply calls `isEquivalent`."
+              }
+            ],
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "wasMoved(comparedTo:)<\/Name>s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF<\/USR>func wasMoved(comparedTo other: Self) -> Bool<\/Declaration>Return true if the content’s sort changed based on the old value passed into the function.<\/Para><\/Abstract>The list view uses the value of this method to be more intelligent about what has moved within the list.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method which simply calls isEquivalent<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.line" : 93,
+            "key.doc.name" : "wasMoved(comparedTo:)",
+            "key.doc.type" : "Function",
+            "key.doclength" : 338,
+            "key.docoffset" : 2885,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 46,
+            "key.name" : "wasMoved(comparedTo:)",
+            "key.namelength" : 33,
+            "key.nameoffset" : 3233,
+            "key.offset" : 3228,
+            "key.parsed_declaration" : "func wasMoved(comparedTo other : Self) -> Bool",
+            "key.parsed_scope.end" : 93,
+            "key.parsed_scope.start" : 93,
+            "key.related_decls" : [
+              {
+                "key.annotated_decl" : "wasMoved(comparedTo: Self) -> Bool<\/RelatedName>"
+              }
+            ],
+            "key.substructure" : [
+
+            ],
+            "key.typename" : " (Self) -> (Self) -> Bool",
+            "key.typeusr" : "$s10comparedToSbx_tcD",
+            "key.usr" : "s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func isEquivalent(to other: Self<\/Type>) -> Bool<\/Type><\/Declaration>",
+            "key.doc.column" : 10,
+            "key.doc.comment" : "Return false if the content' changed based on the old value passed into the function.\n\nIf this method returns false, the row representing the content is reloaded.\n\nNote\n----\nThere is a default implementation of this method when `ItemContent ` conforms to `Equatable`\nwhich returns `self == other`.",
+            "key.doc.declaration" : "func isEquivalent(to other: Self) -> Bool",
+            "key.doc.discussion" : [
+              {
+                "Para" : "If this method returns false, the row representing the content is reloaded."
+              },
+              {
+                "Para" : "There is a default implementation of this method when `ItemContent ` conforms to `Equatable` which returns `self == other`."
+              }
+            ],
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Return false if the content’ changed based on the old value passed into the function.<\/Para><\/Abstract>If this method returns false, the row representing the content is reloaded.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method when ItemContent <\/codeVoice> conforms to Equatable<\/codeVoice> which returns self == other<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.line" : 105,
+            "key.doc.name" : "isEquivalent(to:)",
+            "key.doc.type" : "Function",
+            "key.doclength" : 349,
+            "key.docoffset" : 3284,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 42,
+            "key.name" : "isEquivalent(to:)",
+            "key.namelength" : 29,
+            "key.nameoffset" : 3643,
+            "key.offset" : 3638,
+            "key.parsed_declaration" : "func isEquivalent(to other : Self) -> Bool",
+            "key.parsed_scope.end" : 105,
+            "key.parsed_scope.start" : 105,
+            "key.related_decls" : [
+              {
+                "key.annotated_decl" : "isEquivalent(to: Self) -> Bool<\/RelatedName>"
+              }
+            ],
+            "key.substructure" : [
+
+            ],
+            "key.typename" : " (Self) -> (Self) -> Bool",
+            "key.typeusr" : "$s2toSbx_tcD",
+            "key.usr" : "s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 45,
+            "key.name" : "MARK: Creating & Providing Swipe Action Views",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 3700
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "associatedtype SwipeActionsView : ItemContentSwipeActionsView<\/Type> = DefaultSwipeActionsView<\/Type><\/Declaration>",
+            "key.doc.column" : 20,
+            "key.doc.comment" : "The view type to use to render swipe actions (delete, etc) for this content.\nA default implementation, which matches `UITableView`, is provided.",
+            "key.doc.declaration" : "associatedtype SwipeActionsView : ListableUI.ItemContentSwipeActionsView = ListableUI.DefaultSwipeActionsView",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "SwipeActionsView<\/Name>s:10ListableUI11ItemContentP16SwipeActionsViewQa<\/USR>associatedtype SwipeActionsView : ListableUI.ItemContentSwipeActionsView = ListableUI.DefaultSwipeActionsView<\/Declaration>The view type to use to render swipe actions (delete, etc) for this content. A default implementation, which matches UITableView<\/codeVoice>, is provided.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 113,
+            "key.doc.name" : "SwipeActionsView",
+            "key.doc.type" : "Other",
             "key.doclength" : 157,
             "key.docoffset" : 3762,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> SwipeActionsView<\/decl.name> : ItemContentSwipeActionsView<\/ref.protocol> = DefaultSwipeActionsView<\/ref.class><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 86,
@@ -31054,14 +31353,14 @@
             "key.doc.column" : 20,
             "key.doc.comment" : "The content view used to draw the content.\nThe content view is drawn at the top of the view hierarchy, above the background views.",
             "key.doc.declaration" : "associatedtype ContentView : UIView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "ContentView<\/Name>s:10ListableUI11ItemContentP0D4ViewQa<\/USR>associatedtype ContentView : UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "ContentView<\/Name>s:10ListableUI11ItemContentP0D4ViewQa<\/USR>associatedtype ContentView : UIView<\/Declaration>The content view used to draw the content. The content view is drawn at the top of the view hierarchy, above the background views.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 121,
             "key.doc.name" : "ContentView",
             "key.doc.type" : "Other",
             "key.doclength" : 143,
             "key.docoffset" : 4086,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> ContentView<\/decl.name> : UIView<\/ref.class><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 33,
@@ -31087,14 +31386,14 @@
                 "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "createReusableContentView(frame:)<\/Name>s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ<\/USR>static func createReusableContentView(frame: CGRect) -> ContentView<\/Declaration>Create and return a new content view used to render the content.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 130,
             "key.doc.name" : "createReusableContentView(frame:)",
             "key.doc.type" : "Function",
             "key.doclength" : 328,
             "key.docoffset" : 4277,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableContentView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ContentView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 68,
@@ -31126,14 +31425,14 @@
             "key.doc.column" : 20,
             "key.doc.comment" : "The coordinator type to use to manage the live state of the `Item` and `ItemContent`,\nif you need to update content based on signals such as notifications, view state, appearance state,\netc.",
             "key.doc.declaration" : "associatedtype Coordinator : ListableUI.ItemContentCoordinator = ListableUI.DefaultItemContentCoordinator where Self == Self.Coordinator.ItemContentType",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "Coordinator<\/Name>s:10ListableUI11ItemContentP11CoordinatorQa<\/USR>associatedtype Coordinator : ListableUI.ItemContentCoordinator = ListableUI.DefaultItemContentCoordinator<Self> where Self == Self.Coordinator.ItemContentType<\/Declaration>The coordinator type to use to manage the live state of the Item<\/codeVoice> and ItemContent<\/codeVoice>, if you need to update content based on signals such as notifications, view state, appearance state, etc.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "Coordinator<\/Name>s:10ListableUI11ItemContentP11CoordinatorQa<\/USR>associatedtype Coordinator : ListableUI.ItemContentCoordinator = ListableUI.DefaultItemContentCoordinator<Self> where Self == Self.Coordinator.ItemContentType<\/Declaration>The coordinator type to use to manage the live state of the Item<\/codeVoice> and ItemContent<\/codeVoice>, if you need to update content based on signals such as notifications, view state, appearance state, etc.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 139,
             "key.doc.name" : "Coordinator",
             "key.doc.type" : "Other",
             "key.doclength" : 211,
             "key.docoffset" : 4740,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> Coordinator<\/decl.name> : ItemContentCoordinator<\/ref.protocol> = DefaultItemContentCoordinator<\/ref.class><Self<\/ref.generic_type_param>> where<\/syntaxtype.keyword> Self<\/ref.generic_type_param> == Self<\/ref.generic_type_param>.Coordinator.ItemContentType<\/decl.generic_type_requirement><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 89,
@@ -31154,14 +31453,14 @@
             "key.doc.column" : 15,
             "key.doc.comment" : "The actions passed to the coordinator.",
             "key.doc.declaration" : "typealias ListableUI.ItemContent.CoordinatorActions = ItemContentCoordinatorActions",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "CoordinatorActions<\/Name>s:10ListableUI11ItemContentP18CoordinatorActionsa<\/USR>typealias ListableUI.ItemContent.CoordinatorActions = ItemContentCoordinatorActions<Self><\/Declaration>The actions passed to the coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "CoordinatorActions<\/Name>s:10ListableUI11ItemContentP18CoordinatorActionsa<\/USR>typealias ListableUI.ItemContent.CoordinatorActions = ItemContentCoordinatorActions<Self><\/Declaration>The actions passed to the coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 142,
             "key.doc.name" : "CoordinatorActions",
             "key.doc.type" : "Other",
             "key.doclength" : 43,
             "key.docoffset" : 5054,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ItemContent<\/ref.protocol>.CoordinatorActions<\/decl.name> = ItemContentCoordinatorActions<\/ref.class><Self<\/ref.generic_type_param>><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 66,
@@ -31182,14 +31481,14 @@
             "key.doc.column" : 15,
             "key.doc.comment" : "The info passed to the coordinator.",
             "key.doc.declaration" : "typealias ListableUI.ItemContent.CoordinatorInfo = ItemContentCoordinatorInfo",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "CoordinatorInfo<\/Name>s:10ListableUI11ItemContentP15CoordinatorInfoa<\/USR>typealias ListableUI.ItemContent.CoordinatorInfo = ItemContentCoordinatorInfo<Self><\/Declaration>The info passed to the coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "CoordinatorInfo<\/Name>s:10ListableUI11ItemContentP15CoordinatorInfoa<\/USR>typealias ListableUI.ItemContent.CoordinatorInfo = ItemContentCoordinatorInfo<Self><\/Declaration>The info passed to the coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 144,
             "key.doc.name" : "CoordinatorInfo",
             "key.doc.type" : "Other",
             "key.doclength" : 40,
             "key.docoffset" : 5172,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ItemContent<\/ref.protocol>.CoordinatorInfo<\/decl.name> = ItemContentCoordinatorInfo<\/ref.class><Self<\/ref.generic_type_param>><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 60,
@@ -31210,14 +31509,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Creates a new coordinator with the provided actions and info.",
             "key.doc.declaration" : "func makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "makeCoordinator(actions:info:)<\/Name>s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF<\/USR>func makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator<\/Declaration>Creates a new coordinator with the provided actions and info.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "makeCoordinator(actions:info:)<\/Name>s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF<\/USR>func makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator<\/Declaration>Creates a new coordinator with the provided actions and info.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 147,
             "key.doc.name" : "makeCoordinator(actions:info:)",
             "key.doc.type" : "Function",
             "key.doclength" : 66,
             "key.docoffset" : 5286,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> makeCoordinator<\/decl.name>(actions<\/decl.var.parameter.argument_label>: CoordinatorActions<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: CoordinatorInfo<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Coordinator<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 89,
@@ -31259,14 +31558,14 @@
                 "Para" : "Defaults to a `UIView` with no drawn appearance or state. You do not need to provide this `typealias` unless you would like to draw a background view."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "BackgroundView<\/Name>s:10ListableUI11ItemContentP14BackgroundViewQa<\/USR>associatedtype BackgroundView : UIView = UIView<\/Declaration>The background view used to draw the background of the content. The background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a background view.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "BackgroundView<\/Name>s:10ListableUI11ItemContentP14BackgroundViewQa<\/USR>associatedtype BackgroundView : UIView = UIView<\/Declaration>The background view used to draw the background of the content. The background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a background view.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 162,
             "key.doc.name" : "BackgroundView",
             "key.doc.type" : "Other",
             "key.doclength" : 346,
             "key.docoffset" : 5525,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> BackgroundView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 45,
@@ -31292,14 +31591,14 @@
                 "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 170,
             "key.doc.name" : "createReusableBackgroundView(frame:)",
             "key.doc.type" : "Function",
             "key.doclength" : 344,
             "key.docoffset" : 5930,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 74,
@@ -31333,14 +31632,14 @@
                 "Para" : "Defaults to a `UIView` with no drawn appearance or state. You do not need to provide this `typealias` unless you would like to draw a selected background view."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "SelectedBackgroundView<\/Name>s:10ListableUI11ItemContentP22SelectedBackgroundViewQa<\/USR>associatedtype SelectedBackgroundView : UIView = UIView<\/Declaration>The selected background view used to draw the background of the content when it is selected or highlighted. The selected background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a selected background view.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "SelectedBackgroundView<\/Name>s:10ListableUI11ItemContentP22SelectedBackgroundViewQa<\/USR>associatedtype SelectedBackgroundView : UIView = UIView<\/Declaration>The selected background view used to draw the background of the content when it is selected or highlighted. The selected background view is drawn below the content view.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Defaults to a UIView<\/codeVoice> with no drawn appearance or state. You do not need to provide this typealias<\/codeVoice> unless you would like to draw a selected background view.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 181,
             "key.doc.name" : "SelectedBackgroundView",
             "key.doc.type" : "Other",
             "key.doclength" : 408,
             "key.docoffset" : 6362,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> SelectedBackgroundView<\/decl.name> : UIView<\/ref.class> = UIView<\/ref.class><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 53,
@@ -31372,14 +31671,14 @@
                 "Para" : "Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in `apply(to:)`, so the appearance will be updated if the appearance of content changes."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "createReusableSelectedBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s selected background.<\/Para><\/Abstract>This view is displayed when the content is highlighted or selected.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "createReusableSelectedBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s selected background.<\/Para><\/Abstract>This view is displayed when the content is highlighted or selected.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 195,
             "key.doc.name" : "createReusableSelectedBackgroundView(frame:)",
             "key.doc.type" : "Function",
             "key.doclength" : 615,
             "key.docoffset" : 6842,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableSelectedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> SelectedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 90,
@@ -31422,14 +31721,14 @@
         "key.doc.column" : 15,
         "key.doc.comment" : "The views owned by the item content, passed to the `apply(to:) method to theme and provide content.`",
         "key.doc.declaration" : "public struct ItemContentViews where Content : ListableUI.ItemContent",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContentViews<\/Name>s:10ListableUI16ItemContentViewsV<\/USR>public struct ItemContentViews<Content> where Content : ListableUI.ItemContent<\/Declaration>The views owned by the item content, passed to the apply(to:) method to theme and provide content.<\/codeVoice><\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContentViews<\/Name>s:10ListableUI16ItemContentViewsV<\/USR>public struct ItemContentViews<Content> where Content : ListableUI.ItemContent<\/Declaration>The views owned by the item content, passed to the apply(to:) method to theme and provide content.<\/codeVoice><\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 200,
         "key.doc.name" : "ItemContentViews",
         "key.doc.type" : "Class",
         "key.doclength" : 105,
         "key.docoffset" : 7556,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemContentViews<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 422,
@@ -31450,7 +31749,7 @@
                 "key.offset" : 7700
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -31483,14 +31782,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The content view of the content.",
             "key.doc.declaration" : "public var content: Content.ContentView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI16ItemContentViewsV7content0D4ViewQzvp<\/USR>public var content: Content.ContentView<\/Declaration>The content view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI16ItemContentViewsV7content0D4ViewQzvp<\/USR>public var content: Content.ContentView<\/Declaration>The content view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 203,
             "key.doc.name" : "content",
             "key.doc.type" : "Other",
             "key.doclength" : 37,
             "key.docoffset" : 7719,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.generic_type_param>.ContentView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -31519,14 +31818,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The background view of the content.",
             "key.doc.declaration" : "public var background: Content.BackgroundView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "background<\/Name>s:10ListableUI16ItemContentViewsV10background14BackgroundViewQzvp<\/USR>public var background: Content.BackgroundView<\/Declaration>The background view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "background<\/Name>s:10ListableUI16ItemContentViewsV10background14BackgroundViewQzvp<\/USR>public var background: Content.BackgroundView<\/Declaration>The background view of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 206,
             "key.doc.name" : "background",
             "key.doc.type" : "Other",
             "key.doclength" : 40,
             "key.docoffset" : 7810,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> background<\/decl.name>: Content<\/ref.generic_type_param>.BackgroundView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
@@ -31555,14 +31854,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The selected background view of the content.\nDisplayed when the content is highlighted or selected.",
             "key.doc.declaration" : "public var selectedBackground: Content.SelectedBackgroundView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "selectedBackground<\/Name>s:10ListableUI16ItemContentViewsV18selectedBackground08SelectedG4ViewQzvp<\/USR>public var selectedBackground: Content.SelectedBackgroundView<\/Declaration>The selected background view of the content. Displayed when the content is highlighted or selected.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "selectedBackground<\/Name>s:10ListableUI16ItemContentViewsV18selectedBackground08SelectedG4ViewQzvp<\/USR>public var selectedBackground: Content.SelectedBackgroundView<\/Declaration>The selected background view of the content. Displayed when the content is highlighted or selected.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 210,
             "key.doc.name" : "selectedBackground",
             "key.doc.type" : "Other",
             "key.doclength" : 112,
             "key.docoffset" : 7910,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> selectedBackground<\/decl.name>: Content<\/ref.generic_type_param>.SelectedBackgroundView<\/ref.associatedtype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 55,
@@ -31603,14 +31902,14 @@
             "Para" : "You can use this information to alter the display of your content, such as changing the background color for highlights and selections, providing different corner styles for different item positions, etc."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ApplyItemContentInfo<\/Name>s:10ListableUI20ApplyItemContentInfoV<\/USR>public struct ApplyItemContentInfo<\/Declaration>Information about the current state of the content, which is passed to apply(to:for:with:)<\/codeVoice> during configuration and preparation for display.<\/Para><\/Abstract>You can use this information to alter the display of your content, such as changing the background color for highlights and selections, providing different corner styles for different item positions, etc.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ApplyItemContentInfo<\/Name>s:10ListableUI20ApplyItemContentInfoV<\/USR>public struct ApplyItemContentInfo<\/Declaration>Information about the current state of the content, which is passed to apply(to:for:with:)<\/codeVoice> during configuration and preparation for display.<\/Para><\/Abstract>You can use this information to alter the display of your content, such as changing the background color for highlights and selections, providing different corner styles for different item positions, etc.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 220,
         "key.doc.name" : "ApplyItemContentInfo",
         "key.doc.type" : "Class",
         "key.doclength" : 372,
         "key.docoffset" : 8093,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ApplyItemContentInfo<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 549,
@@ -31635,14 +31934,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The state of the `Item` currently displaying the content. Is it highlighted, selected, etc.",
             "key.doc.declaration" : "public var state: ItemState",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "state<\/Name>s:10ListableUI20ApplyItemContentInfoV5stateAA0D5StateVvp<\/USR>public var state: ItemState<\/Declaration>The state of the Item<\/codeVoice> currently displaying the content. Is it highlighted, selected, etc.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "state<\/Name>s:10ListableUI20ApplyItemContentInfoV5stateAA0D5StateVvp<\/USR>public var state: ItemState<\/Declaration>The state of the Item<\/codeVoice> currently displaying the content. Is it highlighted, selected, etc.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 223,
             "key.doc.name" : "state",
             "key.doc.type" : "Other",
             "key.doclength" : 96,
             "key.docoffset" : 8506,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> state<\/decl.name>: ItemState<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -31671,14 +31970,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The position of the item within its section.",
             "key.doc.declaration" : "public var position: ItemPosition",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI20ApplyItemContentInfoV8positionAA0D8PositionOvp<\/USR>public var position: ItemPosition<\/Declaration>The position of the item within its section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI20ApplyItemContentInfoV8positionAA0D8PositionOvp<\/USR>public var position: ItemPosition<\/Declaration>The position of the item within its section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 226,
             "key.doc.name" : "position",
             "key.doc.type" : "Other",
             "key.doclength" : 49,
             "key.docoffset" : 8644,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> position<\/decl.name>: ItemPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
@@ -31707,14 +32006,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "Provides access to actions to handle re-ordering the content within the list.",
             "key.doc.declaration" : "public var reordering: ReorderingActions",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "reordering<\/Name>s:10ListableUI20ApplyItemContentInfoV10reorderingAA17ReorderingActionsCvp<\/USR>public var reordering: ReorderingActions<\/Declaration>Provides access to actions to handle re-ordering the content within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "reordering<\/Name>s:10ListableUI20ApplyItemContentInfoV10reorderingAA17ReorderingActionsCvp<\/USR>public var reordering: ReorderingActions<\/Declaration>Provides access to actions to handle re-ordering the content within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 229,
             "key.doc.name" : "reordering",
             "key.doc.type" : "Other",
             "key.doclength" : 82,
             "key.docoffset" : 8741,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> reordering<\/decl.name>: ReorderingActions<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 34,
@@ -31743,14 +32042,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The environment of the containing list.\nSee `ListEnvironment` for usage information.",
             "key.doc.declaration" : "public var environment: ListEnvironment",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI20ApplyItemContentInfoV11environmentAA15ListEnvironmentVvp<\/USR>public var environment: ListEnvironment<\/Declaration>The environment of the containing list. See ListEnvironment<\/codeVoice> for usage information.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI20ApplyItemContentInfoV11environmentAA15ListEnvironmentVvp<\/USR>public var environment: ListEnvironment<\/Declaration>The environment of the containing list. See ListEnvironment<\/codeVoice> for usage information.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 233,
             "key.doc.name" : "environment",
             "key.doc.type" : "Other",
             "key.doclength" : 97,
             "key.docoffset" : 8878,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -31800,14 +32099,14 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 40,
         "key.doc.name" : "ItemContent",
         "key.doc.type" : "Class",
         "key.doclength" : 97,
         "key.docoffset" : 9024,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 134,
@@ -31837,12 +32136,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Return false if the content’ changed based on the old value passed into the function.<\/Para><\/Abstract>If this method returns false, the row representing the content is reloaded.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method when ItemContent <\/codeVoice> conforms to Equatable<\/codeVoice> which returns self == other<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "isEquivalent(to:)<\/Name>s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF<\/USR>func isEquivalent(to other: Self) -> Bool<\/Declaration>Return false if the content’ changed based on the old value passed into the function.<\/Para><\/Abstract>If this method returns false, the row representing the content is reloaded.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method when ItemContent <\/codeVoice> conforms to Equatable<\/codeVoice> which returns self == other<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 105,
             "key.doc.name" : "isEquivalent(to:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isEquivalent<\/decl.name>(to<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 83,
@@ -31904,14 +32203,14 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 40,
         "key.doc.name" : "ItemContent",
         "key.doc.type" : "Class",
         "key.doclength" : 109,
         "key.docoffset" : 9265,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 118,
@@ -31941,12 +32240,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp<\/USR>var identifier: Identifier<Self> { get }<\/Declaration>Identifies the content across updates to the list. This value must remain the same, otherwise the content will be considered a new item, and the old one removed from the list.<\/Para><\/Abstract>Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier.<\/Para>If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "identifier<\/Name>s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp<\/USR>var identifier: Identifier<Self> { get }<\/Declaration>Identifies the content across updates to the list. This value must remain the same, otherwise the content will be considered a new item, and the old one removed from the list.<\/Para><\/Abstract>Does not have to be globally unique – the list will make a “best guess” if there are multiple items with the same identifier. However, diffing of changes will be more correct with a unique identifier.<\/Para>If you’re backing your content with some sort of client or server-provided data, consider using its server or client UUID here, or some other unique identifier from the underlying data model.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 54,
             "key.doc.name" : "identifier",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.class><Self<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 64,
@@ -32000,14 +32299,14 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 40,
         "key.doc.name" : "ItemContent",
         "key.doc.type" : "Class",
         "key.doclength" : 69,
         "key.docoffset" : 9526,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 141,
@@ -32037,12 +32336,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "wasMoved(comparedTo:)<\/Name>s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF<\/USR>func wasMoved(comparedTo other: Self) -> Bool<\/Declaration>Return true if the content’s sort changed based on the old value passed into the function.<\/Para><\/Abstract>The list view uses the value of this method to be more intelligent about what has moved within the list.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method which simply calls isEquivalent<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "wasMoved(comparedTo:)<\/Name>s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF<\/USR>func wasMoved(comparedTo other: Self) -> Bool<\/Declaration>Return true if the content’s sort changed based on the old value passed into the function.<\/Para><\/Abstract>The list view uses the value of this method to be more intelligent about what has moved within the list.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>There is a default implementation of this method which simply calls isEquivalent<\/codeVoice>.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 93,
             "key.doc.name" : "wasMoved(comparedTo:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 111,
@@ -32099,14 +32398,14 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 40,
         "key.doc.name" : "ItemContent",
         "key.doc.type" : "Class",
         "key.doclength" : 136,
         "key.docoffset" : 9746,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 109,
@@ -32130,12 +32429,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "defaultItemProperties<\/Name>s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp<\/USR>var defaultItemProperties: DefaultItemProperties<Self> { get }<\/Declaration>Default values to assign to various properties on the Item<\/codeVoice> which wraps this ItemContent<\/codeVoice>, if those values are not passed to the Item<\/codeVoice> initializer.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "defaultItemProperties<\/Name>s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp<\/USR>var defaultItemProperties: DefaultItemProperties<Self> { get }<\/Declaration>Default values to assign to various properties on the Item<\/codeVoice> which wraps this ItemContent<\/codeVoice>, if those values are not passed to the Item<\/codeVoice> initializer.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 62,
             "key.doc.name" : "defaultItemProperties",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultItemProperties<\/decl.name>: DefaultItemProperties<\/ref.struct><Self<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 79,
@@ -32189,14 +32488,14 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 40,
         "key.doc.name" : "ItemContent",
         "key.doc.type" : "Class",
         "key.doclength" : 78,
         "key.docoffset" : 10001,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 301,
@@ -32220,12 +32519,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "makeCoordinator(actions:info:)<\/Name>s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF<\/USR>func makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator<\/Declaration>Creates a new coordinator with the provided actions and info.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "makeCoordinator(actions:info:)<\/Name>s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF<\/USR>func makeCoordinator(actions: CoordinatorActions, info: CoordinatorInfo) -> Coordinator<\/Declaration>Creates a new coordinator with the provided actions and info.<\/Para><\/Abstract>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 147,
             "key.doc.name" : "makeCoordinator(actions:info:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> makeCoordinator<\/decl.name>(actions<\/decl.var.parameter.argument_label>: ItemContentCoordinatorActions<\/ref.class><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: ItemContentCoordinatorInfo<\/ref.class><Self<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Coordinator<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 214,
@@ -32282,14 +32581,14 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 40,
         "key.doc.name" : "ItemContent",
         "key.doc.type" : "Class",
         "key.doclength" : 67,
         "key.docoffset" : 10390,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 184,
@@ -32316,12 +32615,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "createReusableBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ<\/USR>static func createReusableBackgroundView(frame: CGRect) -> BackgroundView<\/Declaration>Create and return a new background view used to render the content’s background.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 170,
             "key.doc.name" : "createReusableBackgroundView(frame:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> BackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 123,
@@ -32378,14 +32677,14 @@
             "Para" : "The ordering of the elements by z-index is as follows: z-index 3) `ContentView` z-index 2) `SelectedBackgroundView` (Only if the item supports a `selectionStyle` and is selected or highlighted.) z-index 1) `BackgroundView`"
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContent<\/Name>s:10ListableUI11ItemContentP<\/USR>public protocol ItemContent<\/Declaration>An ItemContent<\/codeVoice> is a type used to provide the content of an Item<\/codeVoice> in a listable section.<\/Para><\/Abstract>A ItemContent<\/codeVoice> that displays text might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> MyContentView {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered>, for reason: ApplyReason, with info : ApplyItemContentInfo) {]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you want to add support for rendering a background view and a selected or highlighted state, you should provide both createReusableBackgroundView<\/codeVoice> and createReusableSelectedBackgroundView<\/codeVoice> methods, and apply the desired content in your apply(to:)<\/codeVoice> method.<\/Para>The ordering of the elements by z-index is as follows: z-index 3) ContentView<\/codeVoice> z-index 2) SelectedBackgroundView<\/codeVoice> (Only if the item supports a selectionStyle<\/codeVoice> and is selected or highlighted.) z-index 1) BackgroundView<\/codeVoice><\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 40,
         "key.doc.name" : "ItemContent",
         "key.doc.type" : "Class",
         "key.doclength" : 76,
         "key.docoffset" : 10651,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContent<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 208,
@@ -32418,12 +32717,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-            "key.doc.full_as_xml" : "createReusableSelectedBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s selected background.<\/Para><\/Abstract>This view is displayed when the content is highlighted or selected.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.doc.full_as_xml" : "createReusableSelectedBackgroundView(frame:)<\/Name>s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ<\/USR>static func createReusableSelectedBackgroundView(frame: CGRect) -> SelectedBackgroundView<\/Declaration>Create and return a new background view used to render the content’s selected background.<\/Para><\/Abstract>This view is displayed when the content is highlighted or selected.<\/Para>If your BackgroundView<\/codeVoice> and SelectedBackgroundView<\/codeVoice> are the same type, this method is provided automatically by calling createReusableBackgroundView<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not do configuration in this method that will be changed by your view’s theme or appearance – instead do that work in apply(to:)<\/codeVoice>, so the appearance will be updated if the appearance of content changes.<\/Para>This documentation comment was inherited from ItemContent<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 195,
             "key.doc.name" : "createReusableSelectedBackgroundView(frame:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createReusableSelectedBackgroundView<\/decl.name>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> SelectedBackgroundView<\/ref.associatedtype><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 147,
@@ -32471,8 +32770,8 @@
             "Para" : "If you do so, you’re completely responsible for creating and laying out the actions, as well as updating the layout based on the swipe state."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
-        "key.doc.full_as_xml" : "ItemContentSwipeActionsView<\/Name>s:10ListableUI27ItemContentSwipeActionsViewP<\/USR>public protocol ItemContentSwipeActionsView : UIView<\/Declaration>Conform to this protocol to implement a completely custom swipe action view.<\/Para><\/Abstract>If you do so, you’re completely responsible for creating and laying out the actions, as well as updating the layout based on the swipe state.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.doc.full_as_xml" : "ItemContentSwipeActionsView<\/Name>s:10ListableUI27ItemContentSwipeActionsViewP<\/USR>public protocol ItemContentSwipeActionsView : UIView<\/Declaration>Conform to this protocol to implement a completely custom swipe action view.<\/Para><\/Abstract>If you do so, you’re completely responsible for creating and laying out the actions, as well as updating the layout based on the swipe state.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 311,
         "key.doc.name" : "ItemContentSwipeActionsView",
         "key.doc.type" : "Class",
@@ -32485,7 +32784,7 @@
             "key.offset" : 11225
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContentSwipeActionsView<\/decl.name> : UIView<\/ref.class><\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -32507,7 +32806,7 @@
             "key.annotated_decl" : "var swipeActionsWidth: CGFloat<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 11271,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> swipeActionsWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 38,
@@ -32525,7 +32824,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "init(didPerformAction: @escaping SwipeAction<\/Type>.CompletionHandler<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(didPerformAction<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> SwipeAction<\/ref.struct>.CompletionHandler<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 63,
@@ -32557,7 +32856,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func apply(actions: SwipeActionsConfiguration<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(actions<\/decl.var.parameter.argument_label>: SwipeActionsConfiguration<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 46,
@@ -32583,7 +32882,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func apply(state: SwipeActionState<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContent.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(state<\/decl.var.parameter.argument_label>: SwipeActionState<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 35,
@@ -32614,7 +32913,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 7040,
     "key.offset" : 0,
@@ -32651,8 +32950,8 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-        "key.doc.full_as_xml" : "ItemContentCoordinator<\/Name>s:10ListableUI22ItemContentCoordinatorP<\/USR>public protocol ItemContentCoordinator : AnyObject<\/Declaration>A type which lets you interactively manage the contents of an Item<\/codeVoice> or ItemContent<\/codeVoice> within a list.<\/Para><\/Abstract>Eg, you might create a ItemContentCoordinator<\/codeVoice> which listens to a notification, and then updates a field on the Item<\/codeVoice> or ItemContent<\/codeVoice> in response to this notification.<\/Para>ItemContentCoordinator<\/codeVoice> is created when an item is being prepared to be presented on screen for the first time, and lives for as long as the item is present in the list. If you need to pull in any changes to the item due to time passing, you can update the item within the wasCreated<\/codeVoice>callback.<\/Para>There are default implementations of all ItemContentCoordinator<\/codeVoice> methods. You only need to provide implementations for the methods relevant to you.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML>A simple ItemContentCoordinator<\/codeVoice> might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.doc.full_as_xml" : "ItemContentCoordinator<\/Name>s:10ListableUI22ItemContentCoordinatorP<\/USR>public protocol ItemContentCoordinator : AnyObject<\/Declaration>A type which lets you interactively manage the contents of an Item<\/codeVoice> or ItemContent<\/codeVoice> within a list.<\/Para><\/Abstract>Eg, you might create a ItemContentCoordinator<\/codeVoice> which listens to a notification, and then updates a field on the Item<\/codeVoice> or ItemContent<\/codeVoice> in response to this notification.<\/Para>ItemContentCoordinator<\/codeVoice> is created when an item is being prepared to be presented on screen for the first time, and lives for as long as the item is present in the list. If you need to pull in any changes to the item due to time passing, you can update the item within the wasCreated<\/codeVoice>callback.<\/Para>There are default implementations of all ItemContentCoordinator<\/codeVoice> methods. You only need to provide implementations for the methods relevant to you.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML>A simple ItemContentCoordinator<\/codeVoice> might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 55,
         "key.doc.name" : "ItemContentCoordinator",
         "key.doc.type" : "Class",
@@ -32665,7 +32964,7 @@
             "key.offset" : 1785
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContentCoordinator<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -32688,14 +32987,14 @@
             "key.doc.column" : 20,
             "key.doc.comment" : "The type of `ItemContent` associated with this coordinator.",
             "key.doc.declaration" : "associatedtype ItemContentType : ListableUI.ItemContent",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "ItemContentType<\/Name>s:10ListableUI22ItemContentCoordinatorP0cD4TypeQa<\/USR>associatedtype ItemContentType : ListableUI.ItemContent<\/Declaration>The type of ItemContent<\/codeVoice> associated with this coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "ItemContentType<\/Name>s:10ListableUI22ItemContentCoordinatorP0cD4TypeQa<\/USR>associatedtype ItemContentType : ListableUI.ItemContent<\/Declaration>The type of ItemContent<\/codeVoice> associated with this coordinator.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 58,
             "key.doc.name" : "ItemContentType",
             "key.doc.type" : "Other",
             "key.doclength" : 64,
             "key.docoffset" : 1801,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> ItemContentType<\/decl.name> : ItemContent<\/ref.protocol><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 44,
@@ -32726,14 +33025,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "The available actions you can perform on the coordinated `Item`. Eg, updating it to a new value.",
             "key.doc.declaration" : "var actions: ItemContentType.CoordinatorActions { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp<\/USR>var actions: ItemContentType.CoordinatorActions { get }<\/Declaration>The available actions you can perform on the coordinated Item<\/codeVoice>. Eg, updating it to a new value.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp<\/USR>var actions: ItemContentType.CoordinatorActions { get }<\/Declaration>The available actions you can perform on the coordinated Item<\/codeVoice>. Eg, updating it to a new value.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 63,
             "key.doc.name" : "actions",
             "key.doc.type" : "Other",
             "key.doclength" : 101,
             "key.docoffset" : 1956,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> actions<\/decl.name>: ItemContentType<\/ref.associatedtype>.CoordinatorActions<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 56,
@@ -32756,14 +33055,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "Info about the coordinated `Item`, such as its original and current value.",
             "key.doc.declaration" : "var info: ItemContentType.CoordinatorInfo { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "info<\/Name>s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp<\/USR>var info: ItemContentType.CoordinatorInfo { get }<\/Declaration>Info about the coordinated Item<\/codeVoice>, such as its original and current value.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "info<\/Name>s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp<\/USR>var info: ItemContentType.CoordinatorInfo { get }<\/Declaration>Info about the coordinated Item<\/codeVoice>, such as its original and current value.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 66,
             "key.doc.name" : "info",
             "key.doc.type" : "Other",
             "key.doclength" : 79,
             "key.docoffset" : 2127,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> info<\/decl.name>: ItemContentType<\/ref.associatedtype>.CoordinatorInfo<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 50,
@@ -32792,14 +33091,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Invoked on the coordinator when it is first created and configured.",
             "key.doc.declaration" : "func wasInserted(_ info: Item.OnInsert)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasInserted(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF<\/USR>func wasInserted(_ info: Item<ItemContentType>.OnInsert)<\/Declaration>Invoked on the coordinator when it is first created and configured.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasInserted(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF<\/USR>func wasInserted(_ info: Item<ItemContentType>.OnInsert)<\/Declaration>Invoked on the coordinator when it is first created and configured.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 71,
             "key.doc.name" : "wasInserted(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 72,
             "key.docoffset" : 2307,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasInserted<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.struct><ItemContentType<\/ref.associatedtype>>.OnInsert<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 57,
@@ -32833,14 +33132,14 @@
                 "Para" : "Not invoked during deallocation of a list."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasRemoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF<\/USR>func wasRemoved(_ info: Item<ItemContentType>.OnRemove)<\/Declaration>Invoked on the coordinator when its owned item is removed from the list due to the item, or its entire section, being removed from the list.<\/Para><\/Abstract>Not invoked during deallocation of a list.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasRemoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF<\/USR>func wasRemoved(_ info: Item<ItemContentType>.OnRemove)<\/Declaration>Invoked on the coordinator when its owned item is removed from the list due to the item, or its entire section, being removed from the list.<\/Para><\/Abstract>Not invoked during deallocation of a list.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 77,
             "key.doc.name" : "wasRemoved(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 212,
             "key.docoffset" : 2450,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.struct><ItemContentType<\/ref.associatedtype>>.OnRemove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 56,
@@ -32874,14 +33173,14 @@
                 "Para" : "Not invoked when an item is manually re-ordered by a user."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasMoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF<\/USR>func wasMoved(_ info: Item<ItemContentType>.OnMove)<\/Declaration>Invoked on the coordinator when its owned item is moved inside a list due to its order changing.<\/Para><\/Abstract>Not invoked when an item is manually re-ordered by a user.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasMoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF<\/USR>func wasMoved(_ info: Item<ItemContentType>.OnMove)<\/Declaration>Invoked on the coordinator when its owned item is moved inside a list due to its order changing.<\/Para><\/Abstract>Not invoked when an item is manually re-ordered by a user.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 83,
             "key.doc.name" : "wasMoved(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 184,
             "key.docoffset" : 2732,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.struct><ItemContentType<\/ref.associatedtype>>.OnMove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 52,
@@ -32910,14 +33209,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Invoked on the coordinator when an external update is pushed onto the owned `Item`.\nThis happens when the developer updates the content of the list, and the item is\nreported as changed via its `isEquivalent(to:)` method.",
             "key.doc.declaration" : "func wasUpdated(_ info: Item.OnUpdate)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasUpdated(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF<\/USR>func wasUpdated(_ info: Item<ItemContentType>.OnUpdate)<\/Declaration>Invoked on the coordinator when an external update is pushed onto the owned Item<\/codeVoice>. This happens when the developer updates the content of the list, and the item is reported as changed via its isEquivalent(to:)<\/codeVoice> method.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasUpdated(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF<\/USR>func wasUpdated(_ info: Item<ItemContentType>.OnUpdate)<\/Declaration>Invoked on the coordinator when an external update is pushed onto the owned Item<\/codeVoice>. This happens when the developer updates the content of the list, and the item is reported as changed via its isEquivalent(to:)<\/codeVoice> method.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 88,
             "key.doc.name" : "wasUpdated(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 241,
             "key.docoffset" : 2982,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasUpdated<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.struct><ItemContentType<\/ref.associatedtype>>.OnUpdate<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 56,
@@ -32954,14 +33253,14 @@
             "key.doc.column" : 15,
             "key.doc.comment" : "The view type associated with the item.",
             "key.doc.declaration" : "typealias ListableUI.ItemContentCoordinator.View = ItemContentType.ContentView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "View<\/Name>s:10ListableUI22ItemContentCoordinatorP4Viewa<\/USR>typealias ListableUI.ItemContentCoordinator.View = ItemContentType.ContentView<\/Declaration>The view type associated with the item.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "View<\/Name>s:10ListableUI22ItemContentCoordinatorP4Viewa<\/USR>typealias ListableUI.ItemContentCoordinator.View = ItemContentType.ContentView<\/Declaration>The view type associated with the item.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 93,
             "key.doc.name" : "View",
             "key.doc.type" : "Other",
             "key.doclength" : 44,
             "key.docoffset" : 3339,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ItemContentCoordinator<\/ref.protocol>.View<\/decl.name> = ItemContentType<\/ref.associatedtype>.ContentView<\/ref.associatedtype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 44,
@@ -32984,14 +33283,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "The view, if any, currently used to display the item.",
             "key.doc.declaration" : "var view: View? { get set }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "view<\/Name>s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp<\/USR>var view: View? { get set }<\/Declaration>The view, if any, currently used to display the item.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "view<\/Name>s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp<\/USR>var view: View? { get set }<\/Declaration>The view, if any, currently used to display the item.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 96,
             "key.doc.name" : "view",
             "key.doc.type" : "Other",
             "key.doclength" : 58,
             "key.docoffset" : 3441,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> view<\/decl.name>: View<\/ref.typealias>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 28,
@@ -33013,14 +33312,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Invoked when the list is about to begin displaying the item with the given view.",
             "key.doc.declaration" : "func willDisplay(with view: View)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "willDisplay(with:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11willDisplay4withy0cD4Type_0D4ViewQZ_tF<\/USR>func willDisplay(with view: View)<\/Declaration>Invoked when the list is about to begin displaying the item with the given view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "willDisplay(with:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11willDisplay4withy0cD4Type_0D4ViewQZ_tF<\/USR>func willDisplay(with view: View)<\/Declaration>Invoked when the list is about to begin displaying the item with the given view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 99,
             "key.doc.name" : "willDisplay(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 85,
             "key.docoffset" : 3537,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> willDisplay<\/decl.name>(with<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: View<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 34,
@@ -33049,14 +33348,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Invoked when the list is about to complete displaying the item with the given view.",
             "key.doc.declaration" : "func didEndDisplay(with view: View)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "didEndDisplay(with:)<\/Name>s:10ListableUI22ItemContentCoordinatorP13didEndDisplay4withy0cD4Type_0D4ViewQZ_tF<\/USR>func didEndDisplay(with view: View)<\/Declaration>Invoked when the list is about to complete displaying the item with the given view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "didEndDisplay(with:)<\/Name>s:10ListableUI22ItemContentCoordinatorP13didEndDisplay4withy0cD4Type_0D4ViewQZ_tF<\/USR>func didEndDisplay(with view: View)<\/Declaration>Invoked when the list is about to complete displaying the item with the given view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 102,
             "key.doc.name" : "didEndDisplay(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 88,
             "key.docoffset" : 3666,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> didEndDisplay<\/decl.name>(with<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: View<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 36,
@@ -33093,14 +33392,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Invoked when the item is selected, via either user interaction or the `selectionStyle`.",
             "key.doc.declaration" : "func wasSelected()",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasSelected()<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF<\/USR>func wasSelected()<\/Declaration>Invoked when the item is selected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasSelected()<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF<\/USR>func wasSelected()<\/Declaration>Invoked when the item is selected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 107,
             "key.doc.name" : "wasSelected()",
             "key.doc.type" : "Function",
             "key.doclength" : 92,
             "key.docoffset" : 3854,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasSelected<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 18,
@@ -33126,14 +33425,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Invoked when the item is deselected, via either user interaction or the `selectionStyle`.",
             "key.doc.declaration" : "func wasDeselected()",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasDeselected()<\/Name>s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF<\/USR>func wasDeselected()<\/Declaration>Invoked when the item is deselected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasDeselected()<\/Name>s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF<\/USR>func wasDeselected()<\/Declaration>Invoked when the item is deselected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 110,
             "key.doc.name" : "wasDeselected()",
             "key.doc.type" : "Function",
             "key.doclength" : 94,
             "key.docoffset" : 3978,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasDeselected<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 20,
@@ -33189,12 +33488,12 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-        "key.doc.full_as_xml" : "ItemContentCoordinator<\/Name>s:10ListableUI22ItemContentCoordinatorP<\/USR>public protocol ItemContentCoordinator : AnyObject<\/Declaration>A type which lets you interactively manage the contents of an Item<\/codeVoice> or ItemContent<\/codeVoice> within a list.<\/Para><\/Abstract>Eg, you might create a ItemContentCoordinator<\/codeVoice> which listens to a notification, and then updates a field on the Item<\/codeVoice> or ItemContent<\/codeVoice> in response to this notification.<\/Para>ItemContentCoordinator<\/codeVoice> is created when an item is being prepared to be presented on screen for the first time, and lives for as long as the item is present in the list. If you need to pull in any changes to the item due to time passing, you can update the item within the wasCreated<\/codeVoice>callback.<\/Para>There are default implementations of all ItemContentCoordinator<\/codeVoice> methods. You only need to provide implementations for the methods relevant to you.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML>A simple ItemContentCoordinator<\/codeVoice> might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.doc.full_as_xml" : "ItemContentCoordinator<\/Name>s:10ListableUI22ItemContentCoordinatorP<\/USR>public protocol ItemContentCoordinator : AnyObject<\/Declaration>A type which lets you interactively manage the contents of an Item<\/codeVoice> or ItemContent<\/codeVoice> within a list.<\/Para><\/Abstract>Eg, you might create a ItemContentCoordinator<\/codeVoice> which listens to a notification, and then updates a field on the Item<\/codeVoice> or ItemContent<\/codeVoice> in response to this notification.<\/Para>ItemContentCoordinator<\/codeVoice> is created when an item is being prepared to be presented on screen for the first time, and lives for as long as the item is present in the list. If you need to pull in any changes to the item due to time passing, you can update the item within the wasCreated<\/codeVoice>callback.<\/Para>There are default implementations of all ItemContentCoordinator<\/codeVoice> methods. You only need to provide implementations for the methods relevant to you.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML>A simple ItemContentCoordinator<\/codeVoice> might look like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 55,
         "key.doc.name" : "ItemContentCoordinator",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemContentCoordinator<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 590,
@@ -33226,12 +33525,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasInserted(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF<\/USR>func wasInserted(_ info: Item<ItemContentType>.OnInsert)<\/Declaration>Invoked on the coordinator when it is first created and configured.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasInserted(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF<\/USR>func wasInserted(_ info: Item<ItemContentType>.OnInsert)<\/Declaration>Invoked on the coordinator when it is first created and configured.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 71,
             "key.doc.name" : "wasInserted(_:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasInserted<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.struct><ItemContentType<\/ref.associatedtype>>.OnInsert<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 60,
@@ -33269,12 +33568,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasRemoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF<\/USR>func wasRemoved(_ info: Item<ItemContentType>.OnRemove)<\/Declaration>Invoked on the coordinator when its owned item is removed from the list due to the item, or its entire section, being removed from the list.<\/Para><\/Abstract>Not invoked during deallocation of a list.<\/Para>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasRemoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF<\/USR>func wasRemoved(_ info: Item<ItemContentType>.OnRemove)<\/Declaration>Invoked on the coordinator when its owned item is removed from the list due to the item, or its entire section, being removed from the list.<\/Para><\/Abstract>Not invoked during deallocation of a list.<\/Para>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 77,
             "key.doc.name" : "wasRemoved(_:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasRemoved<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.struct><ItemContentType<\/ref.associatedtype>>.OnRemove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 59,
@@ -33312,12 +33611,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasMoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF<\/USR>func wasMoved(_ info: Item<ItemContentType>.OnMove)<\/Declaration>Invoked on the coordinator when its owned item is moved inside a list due to its order changing.<\/Para><\/Abstract>Not invoked when an item is manually re-ordered by a user.<\/Para>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasMoved(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF<\/USR>func wasMoved(_ info: Item<ItemContentType>.OnMove)<\/Declaration>Invoked on the coordinator when its owned item is moved inside a list due to its order changing.<\/Para><\/Abstract>Not invoked when an item is manually re-ordered by a user.<\/Para>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 83,
             "key.doc.name" : "wasMoved(_:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.struct><ItemContentType<\/ref.associatedtype>>.OnMove<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 55,
@@ -33352,12 +33651,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasUpdated(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF<\/USR>func wasUpdated(_ info: Item<ItemContentType>.OnUpdate)<\/Declaration>Invoked on the coordinator when an external update is pushed onto the owned Item<\/codeVoice>. This happens when the developer updates the content of the list, and the item is reported as changed via its isEquivalent(to:)<\/codeVoice> method.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasUpdated(_:)<\/Name>s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF<\/USR>func wasUpdated(_ info: Item<ItemContentType>.OnUpdate)<\/Declaration>Invoked on the coordinator when an external update is pushed onto the owned Item<\/codeVoice>. This happens when the developer updates the content of the list, and the item is reported as changed via its isEquivalent(to:)<\/codeVoice> method.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 88,
             "key.doc.name" : "wasUpdated(_:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasUpdated<\/decl.name>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Item<\/ref.struct><ItemContentType<\/ref.associatedtype>>.OnUpdate<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 59,
@@ -33400,12 +33699,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "willDisplay(with:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11willDisplay4withy0cD4Type_0D4ViewQZ_tF<\/USR>func willDisplay(with view: View)<\/Declaration>Invoked when the list is about to begin displaying the item with the given view.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "willDisplay(with:)<\/Name>s:10ListableUI22ItemContentCoordinatorP11willDisplay4withy0cD4Type_0D4ViewQZ_tF<\/USR>func willDisplay(with view: View)<\/Declaration>Invoked when the list is about to begin displaying the item with the given view.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 99,
             "key.doc.name" : "willDisplay(with:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> willDisplay<\/decl.name>(with<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: View<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 37,
@@ -33440,12 +33739,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "didEndDisplay(with:)<\/Name>s:10ListableUI22ItemContentCoordinatorP13didEndDisplay4withy0cD4Type_0D4ViewQZ_tF<\/USR>func didEndDisplay(with view: View)<\/Declaration>Invoked when the list is about to complete displaying the item with the given view.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "didEndDisplay(with:)<\/Name>s:10ListableUI22ItemContentCoordinatorP13didEndDisplay4withy0cD4Type_0D4ViewQZ_tF<\/USR>func didEndDisplay(with view: View)<\/Declaration>Invoked when the list is about to complete displaying the item with the given view.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 102,
             "key.doc.name" : "didEndDisplay(with:)",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> didEndDisplay<\/decl.name>(with<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: View<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 39,
@@ -33488,12 +33787,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasSelected()<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF<\/USR>func wasSelected()<\/Declaration>Invoked when the item is selected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasSelected()<\/Name>s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF<\/USR>func wasSelected()<\/Declaration>Invoked when the item is selected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 107,
             "key.doc.name" : "wasSelected()",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasSelected<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 21,
@@ -33525,12 +33824,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "wasDeselected()<\/Name>s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF<\/USR>func wasDeselected()<\/Declaration>Invoked when the item is deselected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "wasDeselected()<\/Name>s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF<\/USR>func wasDeselected()<\/Declaration>Invoked when the item is deselected, via either user interaction or the selectionStyle<\/codeVoice>.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 110,
             "key.doc.name" : "wasDeselected()",
             "key.doc.type" : "Function",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasDeselected<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 23,
@@ -33575,14 +33874,14 @@
         "key.doc.column" : 20,
         "key.doc.comment" : "The available actions you can perform as a coordinator, which are reported back to the list to manage the item.",
         "key.doc.declaration" : "public final class ItemContentCoordinatorActions where Content : ListableUI.ItemContent",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-        "key.doc.full_as_xml" : "ItemContentCoordinatorActions<\/Name>s:10ListableUI29ItemContentCoordinatorActionsC<\/USR>public final class ItemContentCoordinatorActions<Content> where Content : ListableUI.ItemContent<\/Declaration>The available actions you can perform as a coordinator, which are reported back to the list to manage the item.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.doc.full_as_xml" : "ItemContentCoordinatorActions<\/Name>s:10ListableUI29ItemContentCoordinatorActionsC<\/USR>public final class ItemContentCoordinatorActions<Content> where Content : ListableUI.ItemContent<\/Declaration>The available actions you can perform as a coordinator, which are reported back to the list to manage the item.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 141,
         "key.doc.name" : "ItemContentCoordinatorActions",
         "key.doc.type" : "Class",
         "key.doclength" : 116,
         "key.docoffset" : 4701,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemContentCoordinatorActions<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 834,
@@ -33603,7 +33902,7 @@
                 "key.offset" : 4874
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -33633,7 +33932,7 @@
                 "key.offset" : 4893
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> currentProvider<\/decl.name>: () -> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
@@ -33651,7 +33950,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var updateCallback: (Item<\/Type><Content<\/Type>>, Bool<\/Type>) -> ()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updateCallback<\/decl.name>: (Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 48,
@@ -33672,7 +33971,7 @@
             "key.annotated_decl" : "init(current: @escaping () -> Item<\/Type><Content<\/Type>>, update: @escaping (Item<\/Type><Content<\/Type>>, Bool<\/Type>) -> ())<\/Declaration>",
             "key.bodylength" : 81,
             "key.bodyoffset" : 5104,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(current<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, update<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 181,
@@ -33705,14 +34004,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Updates the item to the provided item.",
             "key.doc.declaration" : "public func update(animated: Bool = false, _ new: Item)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "update(animated:_:)<\/Name>s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_AA0C0VyxGtF<\/USR>public func update(animated: Bool = false, _ new: Item<Content>)<\/Declaration>Updates the item to the provided item.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "update(animated:_:)<\/Name>s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_AA0C0VyxGtF<\/USR>public func update(animated: Bool = false, _ new: Item<Content>)<\/Declaration>Updates the item to the provided item.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 153,
             "key.doc.name" : "update(animated:_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 43,
             "key.docoffset" : 5196,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> update<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 113,
@@ -33750,14 +34049,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Allows you to update the item passed into the update closure.",
             "key.doc.declaration" : "public func update(animated: Bool = false, _ update: (inout Item) -> ())",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "update(animated:_:)<\/Name>s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_yAA0C0VyxGzXEtF<\/USR>public func update(animated: Bool = false, _ update: (inout Item<Content>) -> ())<\/Declaration>Allows you to update the item passed into the update closure.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "update(animated:_:)<\/Name>s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_yAA0C0VyxGzXEtF<\/USR>public func update(animated: Bool = false, _ update: (inout Item<Content>) -> ())<\/Declaration>Allows you to update the item passed into the update closure.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 159,
             "key.doc.name" : "update(animated:_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 66,
             "key.docoffset" : 5373,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> update<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> update<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 212,
@@ -33776,7 +34075,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var new: Item<\/Type><Content><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: Item<\/ref.struct><Content><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 32,
@@ -33821,14 +34120,14 @@
         "key.doc.column" : 20,
         "key.doc.comment" : "Information about the current and original state of the item.",
         "key.doc.declaration" : "public final class ItemContentCoordinatorInfo where Content : ListableUI.ItemContent",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-        "key.doc.full_as_xml" : "ItemContentCoordinatorInfo<\/Name>s:10ListableUI26ItemContentCoordinatorInfoC<\/USR>public final class ItemContentCoordinatorInfo<Content> where Content : ListableUI.ItemContent<\/Declaration>Information about the current and original state of the item.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.doc.full_as_xml" : "ItemContentCoordinatorInfo<\/Name>s:10ListableUI26ItemContentCoordinatorInfoC<\/USR>public final class ItemContentCoordinatorInfo<Content> where Content : ListableUI.ItemContent<\/Declaration>Information about the current and original state of the item.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 171,
         "key.doc.name" : "ItemContentCoordinatorInfo",
         "key.doc.type" : "Class",
         "key.doclength" : 66,
         "key.docoffset" : 5667,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemContentCoordinatorInfo<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 715,
@@ -33849,7 +34148,7 @@
                 "key.offset" : 5787
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -33887,14 +34186,14 @@
             "key.doc.column" : 30,
             "key.doc.comment" : "The original state of the item, as passed to the list.\nThis is property is updated when the list is updated, and the\n`isEquivalent(to:)` reports a change to the item.",
             "key.doc.declaration" : "public internal(set) var original: Item { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "original<\/Name>s:10ListableUI26ItemContentCoordinatorInfoC8originalAA0C0VyxGvp<\/USR>public internal(set) var original: Item<Content> { get }<\/Declaration>The original state of the item, as passed to the list. This is property is updated when the list is updated, and the isEquivalent(to:)<\/codeVoice> reports a change to the item.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "original<\/Name>s:10ListableUI26ItemContentCoordinatorInfoC8originalAA0C0VyxGvp<\/USR>public internal(set) var original: Item<Content> { get }<\/Declaration>The original state of the item, as passed to the list. This is property is updated when the list is updated, and the isEquivalent(to:)<\/codeVoice> reports a change to the item.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 176,
             "key.doc.name" : "original",
             "key.doc.type" : "Other",
             "key.doclength" : 187,
             "key.docoffset" : 5806,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> internal<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> original<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 28,
@@ -33925,14 +34224,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The current value of the item, including changes made\nby the coordinator itself.",
             "key.doc.declaration" : "public var current: Item { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "current<\/Name>s:10ListableUI26ItemContentCoordinatorInfoC7currentAA0C0VyxGvp<\/USR>public var current: Item<Content> { get }<\/Declaration>The current value of the item, including changes made by the coordinator itself.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "current<\/Name>s:10ListableUI26ItemContentCoordinatorInfoC7currentAA0C0VyxGvp<\/USR>public var current: Item<Content> { get }<\/Declaration>The current value of the item, including changes made by the coordinator itself.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 180,
             "key.doc.name" : "current",
             "key.doc.type" : "Other",
             "key.doclength" : 93,
             "key.docoffset" : 6056,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> current<\/decl.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 66,
@@ -33957,7 +34256,7 @@
                 "key.offset" : 6236
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> currentProvider<\/decl.name>: () -> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
@@ -33977,7 +34276,7 @@
             "key.annotated_decl" : "init(original: Item<\/Type><Content<\/Type>>, current: @escaping () -> Item<\/Type><Content<\/Type>>)<\/Declaration>",
             "key.bodylength" : 86,
             "key.bodyoffset" : 6372,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(original<\/decl.var.parameter.argument_label>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, current<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 164,
@@ -34020,8 +34319,8 @@
         "key.doc.column" : 20,
         "key.doc.comment" : "The default `ItemContentCoordinator`, which performs no actions.",
         "key.doc.declaration" : "public final class DefaultItemContentCoordinator : ItemContentCoordinator where Content : ListableUI.ItemContent",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-        "key.doc.full_as_xml" : "DefaultItemContentCoordinator<\/Name>s:10ListableUI29DefaultItemContentCoordinatorC<\/USR>public final class DefaultItemContentCoordinator<Content> : ItemContentCoordinator where Content : ListableUI.ItemContent<\/Declaration>The default ItemContentCoordinator<\/codeVoice>, which performs no actions.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.doc.full_as_xml" : "DefaultItemContentCoordinator<\/Name>s:10ListableUI29DefaultItemContentCoordinatorC<\/USR>public final class DefaultItemContentCoordinator<Content> : ItemContentCoordinator where Content : ListableUI.ItemContent<\/Declaration>The default ItemContentCoordinator<\/codeVoice>, which performs no actions.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 196,
         "key.doc.name" : "DefaultItemContentCoordinator",
         "key.doc.type" : "Class",
@@ -34034,7 +34333,7 @@
             "key.offset" : 6605
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DefaultItemContentCoordinator<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : ItemContentCoordinator<\/ref.protocol> where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -34060,7 +34359,7 @@
                 "key.offset" : 6590
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -34097,12 +34396,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp<\/USR>var actions: ItemContentType.CoordinatorActions { get }<\/Declaration>The available actions you can perform on the coordinated Item<\/codeVoice>. Eg, updating it to a new value.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp<\/USR>var actions: ItemContentType.CoordinatorActions { get }<\/Declaration>The available actions you can perform on the coordinated Item<\/codeVoice>. Eg, updating it to a new value.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 63,
             "key.doc.name" : "actions",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: Content<\/ref.generic_type_param>.CoordinatorActions<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 40,
@@ -34139,12 +34438,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "info<\/Name>s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp<\/USR>var info: ItemContentType.CoordinatorInfo { get }<\/Declaration>Info about the coordinated Item<\/codeVoice>, such as its original and current value.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "info<\/Name>s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp<\/USR>var info: ItemContentType.CoordinatorInfo { get }<\/Declaration>Info about the coordinated Item<\/codeVoice>, such as its original and current value.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 66,
             "key.doc.name" : "info",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> info<\/decl.name>: Content<\/ref.generic_type_param>.CoordinatorInfo<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 34,
@@ -34181,12 +34480,12 @@
                 "Note" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
-            "key.doc.full_as_xml" : "view<\/Name>s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp<\/USR>var view: View? { get set }<\/Declaration>The view, if any, currently used to display the item.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.doc.full_as_xml" : "view<\/Name>s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp<\/USR>var view: View? { get set }<\/Declaration>The view, if any, currently used to display the item.<\/Para><\/Abstract>This documentation comment was inherited from ItemContentCoordinator<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 96,
             "key.doc.name" : "view",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> view<\/decl.name>: Content<\/ref.generic_type_param>.ContentView<\/ref.associatedtype>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -34219,7 +34518,7 @@
             ],
             "key.bodylength" : 86,
             "key.bodyoffset" : 6950,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemContentCoordinator.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(actions<\/decl.var.parameter.argument_label>: Content<\/ref.generic_type_param>.CoordinatorActions<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: Content<\/ref.generic_type_param>.CoordinatorInfo<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, view<\/decl.var.parameter.argument_label>: DefaultItemContentCoordinator<\/ref.class><Content<\/ref.generic_type_param>>.View<\/ref.typealias>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 243,
@@ -34245,7 +34544,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 4708,
     "key.offset" : 0,
@@ -34262,7 +34561,7 @@
         ],
         "key.bodylength" : 2293,
         "key.bodyoffset" : 167,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemInsertAndRemoveAnimations<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 2332,
@@ -34284,7 +34583,7 @@
                 "key.offset" : 172
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ItemInsertAndRemoveAnimations<\/ref.struct>.Prepare<\/decl.name> = (inout<\/syntaxtype.keyword> Attributes<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 44,
@@ -34309,7 +34608,7 @@
                 "key.offset" : 233
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onInsert<\/decl.name>: Prepare<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 22,
@@ -34335,7 +34634,7 @@
                 "key.offset" : 267
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onRemoval<\/decl.name>: Prepare<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -34363,7 +34662,7 @@
             ],
             "key.bodylength" : 73,
             "key.bodyoffset" : 403,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(onInsert<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Prepare<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, onRemoval<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Prepare<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 163,
@@ -34398,7 +34697,7 @@
             ],
             "key.bodylength" : 76,
             "key.bodyoffset" : 536,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(attributes<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Prepare<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 119,
@@ -34433,7 +34732,7 @@
             ],
             "key.bodylength" : 1805,
             "key.bodyoffset" : 653,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemInsertAndRemoveAnimations<\/ref.struct>.Attributes<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 1829,
@@ -34455,7 +34754,7 @@
                     "key.offset" : 662
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
@@ -34481,7 +34780,7 @@
                     "key.offset" : 696
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> center<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
@@ -34507,7 +34806,7 @@
                     "key.offset" : 740
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> transform<\/decl.name>: CGAffineTransform<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 32,
@@ -34533,7 +34832,7 @@
                     "key.offset" : 788
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> transform3D<\/decl.name>: CATransform3D<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 30,
@@ -34559,7 +34858,7 @@
                     "key.offset" : 835
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alpha<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
@@ -34585,7 +34884,7 @@
                     "key.offset" : 870
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 15,
@@ -34613,7 +34912,7 @@
                 ],
                 "key.bodylength" : 693,
                 "key.bodyoffset" : 936,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 713,
@@ -34634,7 +34933,7 @@
                 "key.annotated_decl" : "init(_ attributes: UICollectionViewLayoutAttributes<\/Type>)<\/Declaration>",
                 "key.bodylength" : 326,
                 "key.bodyoffset" : 1711,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> attributes<\/decl.var.parameter.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 390,
@@ -34657,7 +34956,7 @@
                 "key.annotated_decl" : "func apply(to attributes: UICollectionViewLayoutAttributes<\/Type>)<\/Declaration>",
                 "key.bodylength" : 326,
                 "key.bodyoffset" : 2126,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> attributes<\/decl.var.parameter.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 397,
@@ -34697,7 +34996,7 @@
         ],
         "key.bodylength" : 2194,
         "key.bodyoffset" : 2512,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemInsertAndRemoveAnimations<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 2236,
@@ -34714,7 +35013,7 @@
             "key.annotated_decl" : "static var fade: `Self` { get }<\/Declaration>",
             "key.bodylength" : 177,
             "key.bodyoffset" : 2541,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> fade<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 202,
@@ -34734,7 +35033,7 @@
             "key.annotated_decl" : "static var right: `Self` { get }<\/Declaration>",
             "key.bodylength" : 273,
             "key.bodyoffset" : 2754,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> right<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 299,
@@ -34754,7 +35053,7 @@
             "key.annotated_decl" : "static var left: `Self` { get }<\/Declaration>",
             "key.bodylength" : 273,
             "key.bodyoffset" : 3062,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> left<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 298,
@@ -34774,7 +35073,7 @@
             "key.annotated_decl" : "static var top: `Self` { get }<\/Declaration>",
             "key.bodylength" : 275,
             "key.bodyoffset" : 3369,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> top<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 299,
@@ -34794,7 +35093,7 @@
             "key.annotated_decl" : "static var bottom: `Self` { get }<\/Declaration>",
             "key.bodylength" : 275,
             "key.bodyoffset" : 3681,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bottom<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 302,
@@ -34814,7 +35113,7 @@
             "key.annotated_decl" : "static var scaleDown: `Self` { get }<\/Declaration>",
             "key.bodylength" : 335,
             "key.bodyoffset" : 3996,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scaleDown<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 365,
@@ -34834,7 +35133,7 @@
             "key.annotated_decl" : "static var scaleUp: `Self` { get }<\/Declaration>",
             "key.bodylength" : 335,
             "key.bodyoffset" : 4369,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemInsertAndRemoveAnimations.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scaleUp<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 363,
@@ -34857,164 +35156,294 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemLayout.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 565,
+    "key.length" : 3391,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct ItemLayout : Equatable<\/Type><\/Declaration>",
+        "key.annotated_decl" : "public struct ItemLayouts<\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 109
+            "key.offset" : 1433
           }
         ],
-        "key.bodylength" : 416,
-        "key.bodyoffset" : 147,
-        "key.elements" : [
+        "key.bodylength" : 1245,
+        "key.bodyoffset" : 1460,
+        "key.doc.column" : 15,
+        "key.doc.comment" : "\n`ItemLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your item:\n\n```\nmyItem.layouts.table = .init(\n    width: .fill\n)\n```\n\nAnd then, when the `Item` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmyItem.layouts.table = .init(\n    width: .fill\n)\n\nmyItem.layouts.otherLayout = .init(\n    width: 300,\n    alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `ItemLayouts`,\nto provide easier access to your layout-specific `ItemLayoutsValue` type, like so:\n\n```\nextension ItemLayoutsValue {\n    public var table : TableAppearance.Item.Layout {\n        get { self[TableAppearance.Item.Layout.self] }\n        set { self[TableAppearance.Item.Layout.self] = newValue }\n    }\n}\n```",
+        "key.doc.declaration" : "public struct ItemLayouts",
+        "key.doc.discussion" : [
           {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 9,
-            "key.offset" : 136
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayout<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
-        "key.inheritedtypes" : [
+            "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your item:"
+          },
           {
-            "key.name" : "Equatable"
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "And then, when the `Item` is used within a `.table` style list layout, the provided layout will be used."
+          },
+          {
+            "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "When implementing your own custom layout, you should add an extension to `ItemLayouts`, to provide easier access to your layout-specific `ItemLayoutsValue` type, like so:"
+          },
+          {
+            "CodeListing" : ""
           }
         ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+        "key.doc.full_as_xml" : "ItemLayouts<\/Name>s:10ListableUI11ItemLayoutsV<\/USR>public struct ItemLayouts<\/Declaration>ItemLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your item:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Item<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to ItemLayouts<\/codeVoice>, to provide easier access to your layout-specific ItemLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 54,
+        "key.doc.name" : "ItemLayouts",
+        "key.doc.type" : "Class",
+        "key.doclength" : 1324,
+        "key.docoffset" : 109,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayouts<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 448,
-        "key.name" : "ItemLayout",
-        "key.namelength" : 10,
-        "key.nameoffset" : 123,
-        "key.offset" : 116,
-        "key.parsed_declaration" : "public struct ItemLayout : Equatable",
-        "key.parsed_scope.end" : 28,
-        "key.parsed_scope.start" : 11,
+        "key.length" : 1266,
+        "key.name" : "ItemLayouts",
+        "key.namelength" : 11,
+        "key.nameoffset" : 1447,
+        "key.offset" : 1440,
+        "key.parsed_declaration" : "public struct ItemLayouts",
+        "key.parsed_scope.end" : 88,
+        "key.parsed_scope.start" : 54,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var itemSpacing: CGFloat<\/Type>?<\/Declaration>",
+            "key.annotated_decl" : "public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 152
+                "key.offset" : 1602
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 26,
-            "key.name" : "itemSpacing",
-            "key.namelength" : 11,
-            "key.nameoffset" : 163,
-            "key.offset" : 159,
-            "key.parsed_declaration" : "public var itemSpacing : CGFloat?",
-            "key.parsed_scope.end" : 13,
-            "key.parsed_scope.start" : 13,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "CGFloat?",
-            "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
-            "key.usr" : "s:10ListableUI10ItemLayoutV11itemSpacing12CoreGraphics7CGFloatVSgvp"
+            "key.bodylength" : 70,
+            "key.bodyoffset" : 1674,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Creates a new instance of the layouts, with an optional `configure`\nclosure, to allow you to set up styling inline.",
+            "key.doc.declaration" : "public init(_ configure: (inout `Self`) -> () = { _ in })",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+            "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI11ItemLayoutsVyACyACzXEcfc<\/USR>public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>Creates a new instance of the layouts, with an optional configure<\/codeVoice> closure, to allow you to set up styling inline.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.line" : 58,
+            "key.doc.name" : "init(_:)",
+            "key.doc.type" : "Function",
+            "key.doclength" : 128,
+            "key.docoffset" : 1470,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 136,
+            "key.name" : "init(_:)",
+            "key.namelength" : 63,
+            "key.nameoffset" : 1609,
+            "key.offset" : 1609,
+            "key.parsed_declaration" : "public init(\n    _ configure : (inout Self) -> () = { _ in }\n)",
+            "key.parsed_scope.end" : 64,
+            "key.parsed_scope.start" : 58,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ItemLayouts.Type) -> ((inout ItemLayouts) -> ()) -> ItemLayouts",
+            "key.typeusr" : "$sy10ListableUI11ItemLayoutsVyACzXEcD",
+            "key.usr" : "s:10ListableUI11ItemLayoutsVyACyACzXEcfc"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var itemToSectionFooterSpacing: CGFloat<\/Type>?<\/Declaration>",
+            "key.accessibility" : "source.lang.swift.accessibility.private",
+            "key.annotated_decl" : "private var storage: ContentLayoutsStorage<\/Type><\/Declaration>",
             "key.attributes" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 190
+                "key.attribute" : "source.decl.attribute.private",
+                "key.length" : 7,
+                "key.offset" : 1755
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemToSectionFooterSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> storage<\/decl.name>: ContentLayoutsStorage<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 41,
-            "key.name" : "itemToSectionFooterSpacing",
-            "key.namelength" : 26,
-            "key.nameoffset" : 201,
-            "key.offset" : 197,
-            "key.parsed_declaration" : "public var itemToSectionFooterSpacing : CGFloat?",
-            "key.parsed_scope.end" : 14,
-            "key.parsed_scope.start" : 14,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "CGFloat?",
-            "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
-            "key.usr" : "s:10ListableUI10ItemLayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVSgvp"
+            "key.length" : 35,
+            "key.name" : "storage",
+            "key.namelength" : 7,
+            "key.nameoffset" : 1767,
+            "key.offset" : 1763,
+            "key.parsed_declaration" : "private var storage : ContentLayoutsStorage",
+            "key.parsed_scope.end" : 66,
+            "key.parsed_scope.start" : 66,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.private",
+            "key.typename" : "ContentLayoutsStorage",
+            "key.typeusr" : "$s10ListableUI21ContentLayoutsStorageVD",
+            "key.usr" : "s:10ListableUI11ItemLayoutsV7storage33_72313C9ECF60BD4A9EA46928C34A7FB6LLAA07ContentD7StorageVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public subscript<ValueType>(valueType: ValueType<\/Type>.Type) -> ValueType<\/Type> where ValueType : ItemLayoutsValue<\/Type> { get set }<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 248
+                "key.offset" : 2473
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 23,
-            "key.name" : "width",
-            "key.namelength" : 5,
-            "key.nameoffset" : 259,
-            "key.offset" : 255,
-            "key.parsed_declaration" : "public var width : CustomWidth",
-            "key.parsed_scope.end" : 16,
-            "key.parsed_scope.start" : 16,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "CustomWidth",
-            "key.typeusr" : "$s10ListableUI11CustomWidthOD",
-            "key.usr" : "s:10ListableUI10ItemLayoutV5widthAA11CustomWidthOvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(itemSpacing: CGFloat<\/Type>? = nil, itemToSectionFooterSpacing: CGFloat<\/Type>? = nil, width: CustomWidth<\/Type> = .default)<\/Declaration>",
-            "key.attributes" : [
+            "key.bodylength" : 141,
+            "key.bodyoffset" : 2562,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Allows accessing the various `ItemLayoutsValue`s stored within the object.\nThis method will return the `defaultValue` for a value if none is set.\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `ItemLayouts`,\nto provide easier access to your layout-specific `ItemLayoutsValue` type.\n\n```\nextension ItemLayoutsValue {\n    public var table : TableAppearance.Item.Layout {\n        get { self[TableAppearance.Item.Layout.self] }\n        set { self[TableAppearance.Item.Layout.self] = newValue }\n    }\n}\n```",
+            "key.doc.declaration" : "public subscript(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.ItemLayoutsValue { get set }",
+            "key.doc.discussion" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 292
+                "Para" : "When implementing your own custom layout, you should add an extension to `ItemLayouts`, to provide easier access to your layout-specific `ItemLayoutsValue` type."
+              },
+              {
+                "CodeListing" : ""
               }
             ],
-            "key.bodylength" : 119,
-            "key.bodyoffset" : 442,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, itemToSectionFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 263,
-            "key.name" : "init(itemSpacing:itemToSectionFooterSpacing:width:)",
-            "key.namelength" : 141,
-            "key.nameoffset" : 299,
-            "key.offset" : 299,
-            "key.parsed_declaration" : "public init(\n    itemSpacing : CGFloat? = nil,\n    itemToSectionFooterSpacing : CGFloat? = nil,\n    width : CustomWidth = .default\n)",
-            "key.parsed_scope.end" : 27,
-            "key.parsed_scope.start" : 18,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+            "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:10ListableUI11ItemLayoutsVyxxmcAA0cD5ValueRzluip<\/USR>public subscript<ValueType>(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.ItemLayoutsValue { get set }<\/Declaration>Allows accessing the various ItemLayoutsValue<\/codeVoice>s stored within the object. This method will return the defaultValue<\/codeVoice> for a value if none is set.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to ItemLayouts<\/codeVoice>, to provide easier access to your layout-specific ItemLayoutsValue<\/codeVoice> type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.line" : 84,
+            "key.doc.name" : "subscript(_:)",
+            "key.doc.type" : "Other",
+            "key.doclength" : 661,
+            "key.docoffset" : 1808,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ValueType<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> ValueType : ItemLayoutsValue<\/ref.protocol><\/decl.generic_type_requirement> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>",
+            "key.kind" : "source.lang.swift.decl.function.subscript",
+            "key.length" : 224,
+            "key.name" : "subscript(_:)",
+            "key.namelength" : 67,
+            "key.nameoffset" : 2480,
+            "key.offset" : 2480,
+            "key.parsed_declaration" : "public subscript(_ valueType : ValueType.Type) -> ValueType",
+            "key.parsed_scope.end" : 87,
+            "key.parsed_scope.start" : 84,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.substructure" : [
-
+              {
+                "key.annotated_decl" : "ValueType : ItemLayoutsValue<\/Type><\/Declaration>",
+                "key.elements" : [
+                  {
+                    "key.kind" : "source.lang.swift.structure.elem.typeref",
+                    "key.length" : 16,
+                    "key.offset" : 2500
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+                "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name> : ItemLayoutsValue<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
+                "key.inheritedtypes" : [
+                  {
+                    "key.name" : "ItemLayoutsValue"
+                  }
+                ],
+                "key.kind" : "source.lang.swift.decl.generic_type_param",
+                "key.length" : 26,
+                "key.name" : "ValueType",
+                "key.namelength" : 9,
+                "key.nameoffset" : 2490,
+                "key.offset" : 2490,
+                "key.parsed_declaration" : "public subscript (CGFloat?, CGFloat?, CustomWidth) -> ItemLayout",
-            "key.typeusr" : "$s11itemSpacing0a15ToSectionFooterB05width10ListableUI10ItemLayoutV12CoreGraphics7CGFloatVSg_AjD11CustomWidthOtcD",
-            "key.usr" : "s:10ListableUI10ItemLayoutV11itemSpacing0e15ToSectionFooterF05widthAC12CoreGraphics7CGFloatVSg_AjA11CustomWidthOtcfc"
+            "key.typename" : " (ValueType.Type) -> ValueType",
+            "key.typeusr" : "$syxxmc10ListableUI16ItemLayoutsValueRzluD",
+            "key.usr" : "s:10ListableUI11ItemLayoutsVyxxmcAA0cD5ValueRzluip"
+          }
+        ],
+        "key.typename" : "ItemLayouts.Type",
+        "key.typeusr" : "$s10ListableUI11ItemLayoutsVmD",
+        "key.usr" : "s:10ListableUI11ItemLayoutsV"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol ItemLayoutsValue<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 3233
+          }
+        ],
+        "key.bodylength" : 122,
+        "key.bodyoffset" : 3267,
+        "key.doc.column" : 17,
+        "key.doc.comment" : "\nThe `ItemLayoutsValue` protocol provides a default value for the different layouts stored\nwithin `ItemLayouts`. Provide a `defaultValue` with reasonable defaults, as the\ndeveloper should not need to set these values at all times when using your layout.\n\n```\npublic struct Layout : Equatable, ItemLayoutsValue\n{\n    public var width : CGFloat\n    public var minHeight : CGFloat\n\n    ...\n\n    public static var defaultValue : Self {\n        ...\n    }\n}\n```",
+        "key.doc.declaration" : "public protocol ItemLayoutsValue",
+        "key.doc.discussion" : [
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+        "key.doc.full_as_xml" : "ItemLayoutsValue<\/Name>s:10ListableUI16ItemLayoutsValueP<\/USR>public protocol ItemLayoutsValue<\/Declaration>The ItemLayoutsValue<\/codeVoice> protocol provides a default value for the different layouts stored within ItemLayouts<\/codeVoice>. Provide a defaultValue<\/codeVoice> with reasonable defaults, as the developer should not need to set these values at all times when using your layout.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 109,
+        "key.doc.name" : "ItemLayoutsValue",
+        "key.doc.type" : "Class",
+        "key.doclength" : 524,
+        "key.docoffset" : 2709,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ItemLayoutsValue<\/decl.name><\/decl.protocol>",
+        "key.kind" : "source.lang.swift.decl.protocol",
+        "key.length" : 150,
+        "key.name" : "ItemLayoutsValue",
+        "key.namelength" : 16,
+        "key.nameoffset" : 3249,
+        "key.offset" : 3240,
+        "key.parsed_declaration" : "public protocol ItemLayoutsValue",
+        "key.parsed_scope.end" : 113,
+        "key.parsed_scope.start" : 109,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "static var defaultValue: Self<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 3382,
+            "key.doc.column" : 16,
+            "key.doc.comment" : "The default value used when accessing the value, if none is set.",
+            "key.doc.declaration" : "static var defaultValue: Self { get }",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+            "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 112,
+            "key.doc.name" : "defaultValue",
+            "key.doc.type" : "Other",
+            "key.doclength" : 69,
+            "key.docoffset" : 3277,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+            "key.kind" : "source.lang.swift.decl.var.static",
+            "key.length" : 38,
+            "key.name" : "defaultValue",
+            "key.namelength" : 12,
+            "key.nameoffset" : 3361,
+            "key.offset" : 3350,
+            "key.parsed_declaration" : "static var defaultValue : Self",
+            "key.parsed_scope.end" : 112,
+            "key.parsed_scope.start" : 112,
+            "key.typename" : "Self",
+            "key.typeusr" : "$sxD",
+            "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ"
           }
         ],
-        "key.typename" : "ItemLayout.Type",
-        "key.typeusr" : "$s10ListableUI10ItemLayoutVmD",
-        "key.usr" : "s:10ListableUI10ItemLayoutV"
+        "key.typename" : "ItemLayoutsValue.Protocol",
+        "key.typeusr" : "$s10ListableUI16ItemLayoutsValue_pmD",
+        "key.usr" : "s:10ListableUI16ItemLayoutsValueP"
       }
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemPosition.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemPosition.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 206,
     "key.offset" : 0,
@@ -35031,7 +35460,7 @@
         ],
         "key.bodylength" : 67,
         "key.bodyoffset" : 137,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemPosition.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemPosition.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ItemPosition<\/decl.name><\/decl.enum>",
         "key.kind" : "source.lang.swift.decl.enum",
         "key.length" : 87,
@@ -35053,7 +35482,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case single<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemPosition.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemPosition.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> single<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 6,
@@ -35080,7 +35509,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case first<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemPosition.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemPosition.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> first<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 5,
@@ -35107,7 +35536,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case middle<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemPosition.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemPosition.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> middle<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 6,
@@ -35134,7 +35563,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case last<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemPosition.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemPosition.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> last<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 4,
@@ -35159,7 +35588,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 976,
     "key.offset" : 0,
@@ -35179,8 +35608,8 @@
         "key.doc.column" : 13,
         "key.doc.comment" : "Controls the selection style and behavior of an item in a list.",
         "key.doc.declaration" : "public enum ItemSelectionStyle : Equatable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
-        "key.doc.full_as_xml" : "ItemSelectionStyle<\/Name>s:10ListableUI18ItemSelectionStyleO<\/USR>public enum ItemSelectionStyle : Equatable<\/Declaration>Controls the selection style and behavior of an item in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+        "key.doc.full_as_xml" : "ItemSelectionStyle<\/Name>s:10ListableUI18ItemSelectionStyleO<\/USR>public enum ItemSelectionStyle : Equatable<\/Declaration>Controls the selection style and behavior of an item in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 12,
         "key.doc.name" : "ItemSelectionStyle",
         "key.doc.type" : "Other",
@@ -35193,7 +35622,7 @@
             "key.offset" : 218
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ItemSelectionStyle<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
         "key.inheritedtypes" : [
           {
@@ -35223,14 +35652,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The item is not selectable at all.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
-                "key.doc.full_as_xml" : "notSelectable<\/Name>s:10ListableUI18ItemSelectionStyleO13notSelectableyA2CmF<\/USR><\/Declaration>The item is not selectable at all.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+                "key.doc.full_as_xml" : "notSelectable<\/Name>s:10ListableUI18ItemSelectionStyleO13notSelectableyA2CmF<\/USR><\/Declaration>The item is not selectable at all.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 15,
                 "key.doc.name" : "notSelectable",
                 "key.doc.type" : "Other",
                 "key.doclength" : 39,
                 "key.docoffset" : 234,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> notSelectable<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 13,
@@ -35260,14 +35689,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The item is temporarily selectable. Once the user lifts their finger, the item is deselected.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
-                "key.doc.full_as_xml" : "tappable<\/Name>s:10ListableUI18ItemSelectionStyleO8tappableyA2CmF<\/USR><\/Declaration>The item is temporarily selectable. Once the user lifts their finger, the item is deselected.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+                "key.doc.full_as_xml" : "tappable<\/Name>s:10ListableUI18ItemSelectionStyleO8tappableyA2CmF<\/USR><\/Declaration>The item is temporarily selectable. Once the user lifts their finger, the item is deselected.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 18,
                 "key.doc.name" : "tappable",
                 "key.doc.type" : "Other",
                 "key.doclength" : 98,
                 "key.docoffset" : 305,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> tappable<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 8,
@@ -35297,14 +35726,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The item is persistently selectable. Once the user lifts their finger, the item is maintained.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
-                "key.doc.full_as_xml" : "selectable(isSelected:)<\/Name>s:10ListableUI18ItemSelectionStyleO10selectableyACSb_tcACmF<\/USR><\/Declaration>The item is persistently selectable. Once the user lifts their finger, the item is maintained.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+                "key.doc.full_as_xml" : "selectable(isSelected:)<\/Name>s:10ListableUI18ItemSelectionStyleO10selectableyACSb_tcACmF<\/USR><\/Declaration>The item is persistently selectable. Once the user lifts their finger, the item is maintained.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 21,
                 "key.doc.name" : "selectable(isSelected:)",
                 "key.doc.type" : "Other",
                 "key.doclength" : 99,
                 "key.docoffset" : 430,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> selectable<\/decl.name>(isSelected<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 37,
@@ -35329,7 +35758,7 @@
             "key.annotated_decl" : "var isSelected: Bool<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 172,
             "key.bodyoffset" : 608,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 196,
@@ -35349,7 +35778,7 @@
             "key.annotated_decl" : "var isSelectable: Bool<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 156,
             "key.bodyoffset" : 816,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemSelectionStyle.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> isSelectable<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 182,
@@ -35372,7 +35801,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 761,
     "key.offset" : 0,
@@ -35396,7 +35825,7 @@
             "key.offset" : 134
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemState<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -35425,7 +35854,7 @@
             ],
             "key.bodylength" : 85,
             "key.bodyoffset" : 207,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isSelected<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, isHighlighted<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 137,
@@ -35460,7 +35889,7 @@
             ],
             "key.bodylength" : 95,
             "key.bodyoffset" : 349,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(cell<\/decl.var.parameter.argument_label>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 135,
@@ -35496,14 +35925,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "If the item is currently selected.",
             "key.doc.declaration" : "public var isSelected: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift",
-            "key.doc.full_as_xml" : "isSelected<\/Name>s:10ListableUI9ItemStateV10isSelectedSbvp<\/USR>public var isSelected: Bool<\/Declaration>If the item is currently selected.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift",
+            "key.doc.full_as_xml" : "isSelected<\/Name>s:10ListableUI9ItemStateV10isSelectedSbvp<\/USR>public var isSelected: Bool<\/Declaration>If the item is currently selected.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 26,
             "key.doc.name" : "isSelected",
             "key.doc.type" : "Other",
             "key.doclength" : 39,
             "key.docoffset" : 455,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isSelected<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -35532,14 +35961,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "If the item is currently highlighted.",
             "key.doc.declaration" : "public var isHighlighted: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift",
-            "key.doc.full_as_xml" : "isHighlighted<\/Name>s:10ListableUI9ItemStateV13isHighlightedSbvp<\/USR>public var isHighlighted: Bool<\/Declaration>If the item is currently highlighted.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift",
+            "key.doc.full_as_xml" : "isHighlighted<\/Name>s:10ListableUI9ItemStateV13isHighlightedSbvp<\/USR>public var isHighlighted: Bool<\/Declaration>If the item is currently highlighted.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 29,
             "key.doc.name" : "isHighlighted",
             "key.doc.type" : "Other",
             "key.doclength" : 42,
             "key.docoffset" : 536,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isHighlighted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 24,
@@ -35570,14 +35999,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "If the item is either selected or highlighted.",
             "key.doc.declaration" : "public var isActive: Bool { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift",
-            "key.doc.full_as_xml" : "isActive<\/Name>s:10ListableUI9ItemStateV8isActiveSbvp<\/USR>public var isActive: Bool { get }<\/Declaration>If the item is either selected or highlighted.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift",
+            "key.doc.full_as_xml" : "isActive<\/Name>s:10ListableUI9ItemStateV8isActiveSbvp<\/USR>public var isActive: Bool { get }<\/Declaration>If the item is either selected or highlighted.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 32,
             "key.doc.name" : "isActive",
             "key.doc.type" : "Other",
             "key.doclength" : 51,
             "key.docoffset" : 623,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/ItemState.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemState.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isActive<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 73,
@@ -35600,7 +36029,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 915,
     "key.offset" : 0,
@@ -35617,7 +36046,7 @@
         ],
         "key.bodylength" : 778,
         "key.bodyoffset" : 135,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Reordering<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 798,
@@ -35639,7 +36068,7 @@
                 "key.offset" : 140
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sections<\/decl.name>: Sections<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -35665,7 +36094,7 @@
                 "key.offset" : 180
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Reordering<\/ref.struct>.CanReorder<\/decl.name> = (Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 39,
@@ -35690,7 +36119,7 @@
                 "key.offset" : 231
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> canReorder<\/decl.name>: CanReorder<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 28,
@@ -35716,7 +36145,7 @@
                 "key.offset" : 276
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Reordering<\/ref.struct>.DidReorder<\/decl.name> = (Result<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 37,
@@ -35741,7 +36170,7 @@
                 "key.offset" : 325
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didReorder<\/decl.name>: DidReorder<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
@@ -35769,7 +36198,7 @@
             ],
             "key.bodylength" : 112,
             "key.bodyoffset" : 508,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(sections<\/decl.var.parameter.argument_label>: Sections<\/ref.enum><\/decl.var.parameter.type> = .same<\/decl.var.parameter>, canReorder<\/decl.var.parameter.argument_label>: CanReorder<\/ref.typealias>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, didReorder<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> DidReorder<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 245,
@@ -35806,7 +36235,7 @@
                 "key.offset" : 654
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Reordering<\/ref.struct>.Sections<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -35833,7 +36262,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case same<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> same<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 4,
@@ -35867,7 +36296,7 @@
             ],
             "key.bodylength" : 182,
             "key.bodyoffset" : 729,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Reordering<\/ref.struct>.Result<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 202,
@@ -35889,7 +36318,7 @@
                     "key.offset" : 738
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> fromSection<\/decl.name>: Section<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
@@ -35915,7 +36344,7 @@
                     "key.offset" : 779
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> fromIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 29,
@@ -35941,7 +36370,7 @@
                     "key.offset" : 833
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> toSection<\/decl.name>: Section<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 23,
@@ -35967,7 +36396,7 @@
                     "key.offset" : 872
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Reordering.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Reordering.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> toIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 27,
@@ -35996,7 +36425,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 17859,
     "key.offset" : 0,
@@ -36020,7 +36449,7 @@
             "key.offset" : 148
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> CollectionViewLayout<\/decl.name> : UICollectionViewLayout<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -36055,7 +36484,7 @@
                 "key.offset" : 220
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "unowned<\/syntaxtype.keyword> let<\/syntaxtype.keyword> delegate<\/decl.name>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 43,
@@ -36073,7 +36502,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var layoutDescription: LayoutDescription<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutDescription<\/decl.name>: LayoutDescription<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
@@ -36094,7 +36523,7 @@
             "key.annotated_decl" : "var appearance: Appearance<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 170,
             "key.bodyoffset" : 361,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 200,
@@ -36122,7 +36551,7 @@
             ],
             "key.bodylength" : 122,
             "key.bodyoffset" : 578,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> applyAppearance<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 151,
@@ -36145,7 +36574,7 @@
             "key.annotated_decl" : "var behavior: Behavior<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 166,
             "key.bodyoffset" : 736,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 192,
@@ -36173,7 +36602,7 @@
             ],
             "key.bodylength" : 122,
             "key.bodyoffset" : 947,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> applyBehavior<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 149,
@@ -36204,7 +36633,7 @@
             "key.annotated_decl" : "init(delegate: CollectionViewLayoutDelegate<\/Type>, layoutDescription: LayoutDescription<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>)<\/Declaration>",
             "key.bodylength" : 618,
             "key.bodyoffset" : 1297,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, layoutDescription<\/decl.var.parameter.argument_label>: LayoutDescription<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 789,
@@ -36262,7 +36691,7 @@
             "key.annotated_decl" : "func frameForItem(at indexPath: IndexPath<\/Type>) -> CGRect<\/Type><\/Declaration>",
             "key.bodylength" : 59,
             "key.bodyoffset" : 2128,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> frameForItem<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 119,
@@ -36285,7 +36714,7 @@
             "key.annotated_decl" : "func positionForItem(at indexPath: IndexPath<\/Type>) -> ItemPosition<\/Type><\/Declaration>",
             "key.bodylength" : 62,
             "key.bodyoffset" : 2266,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> positionForItem<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ItemPosition<\/ref.enum><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 131,
@@ -36314,7 +36743,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var layout: AnyListLayout<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layout<\/decl.name>: AnyListLayout<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 26,
@@ -36340,7 +36769,7 @@
                 "key.offset" : 2426
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> previousLayout<\/decl.name>: AnyListLayout<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 34,
@@ -36366,7 +36795,7 @@
                 "key.offset" : 2473
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> changesDuringCurrentUpdate<\/decl.name>: UpdateItems<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 44,
@@ -36392,7 +36821,7 @@
                 "key.offset" : 2530
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> viewProperties<\/decl.name>: CollectionViewLayoutProperties<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 51,
@@ -36421,7 +36850,7 @@
             "key.annotated_decl" : "func setNeedsRelayout()<\/Declaration>",
             "key.bodylength" : 99,
             "key.bodyoffset" : 2697,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setNeedsRelayout<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 129,
@@ -36444,7 +36873,7 @@
             "key.annotated_decl" : "func setNeedsRebuild()<\/Declaration>",
             "key.bodylength" : 98,
             "key.bodyoffset" : 2835,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setNeedsRebuild<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 127,
@@ -36472,7 +36901,7 @@
                 "key.offset" : 2944
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> shouldAskForItemSizesDuringLayoutInvalidation<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 64,
@@ -36493,7 +36922,7 @@
             "key.annotated_decl" : "func setShouldAskForItemSizesDuringLayoutInvalidation()<\/Declaration>",
             "key.bodylength" : 71,
             "key.bodyoffset" : 3092,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setShouldAskForItemSizesDuringLayoutInvalidation<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 133,
@@ -36520,7 +36949,7 @@
             ],
             "key.bodylength" : 45,
             "key.bodyoffset" : 3229,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> class<\/syntaxtype.keyword> var<\/syntaxtype.keyword> invalidationContextClass<\/decl.name>: AnyClass<\/ref.typealias><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.class>",
             "key.kind" : "source.lang.swift.decl.var.class",
             "key.length" : 92,
@@ -36552,7 +36981,7 @@
             ],
             "key.bodylength" : 237,
             "key.bodyoffset" : 3323,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> invalidateLayout<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 267,
@@ -36592,7 +37021,7 @@
             ],
             "key.bodylength" : 1084,
             "key.bodyoffset" : 3664,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> invalidateLayout<\/decl.name>(with<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: UICollectionViewLayoutInvalidationContext<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1169,
@@ -36616,7 +37045,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let view: UICollectionView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: UICollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 31,
@@ -36633,7 +37062,7 @@
               },
               {
                 "key.annotated_decl" : "let context: CollectionViewLayout<\/Type>.InvalidationContext<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> context<\/decl.name>: CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 45,
@@ -36665,7 +37094,7 @@
             ],
             "key.bodylength" : 499,
             "key.bodyoffset" : 5009,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> invalidationContextForEndingInteractiveMovementOfItems<\/decl.name>(toFinalIndexPaths<\/decl.var.parameter.argument_label> indexPaths<\/decl.var.parameter.name>: [IndexPath<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, previousIndexPaths<\/decl.var.parameter.argument_label>: [IndexPath<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, movementCancelled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutInvalidationContext<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 741,
@@ -36700,7 +37129,7 @@
             ],
             "key.bodylength" : 25,
             "key.bodyoffset" : 5604,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> shouldInvalidateLayout<\/decl.name>(forBoundsChange<\/decl.var.parameter.argument_label> newBounds<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 102,
@@ -36752,7 +37181,7 @@
                 "key.offset" : 5682
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> CollectionViewLayout<\/ref.class>.InvalidationContext<\/decl.name> : UICollectionViewLayoutInvalidationContext<\/ref.class><\/decl.class>",
             "key.inheritedtypes" : [
               {
@@ -36772,7 +37201,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var viewPropertiesChanged: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> viewPropertiesChanged<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 40,
@@ -36791,7 +37220,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var performedInteractiveMove: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> performedInteractiveMove<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 43,
@@ -36832,7 +37261,7 @@
             ],
             "key.bodylength" : 1174,
             "key.bodyoffset" : 5940,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> CollectionViewLayout<\/ref.class>.NeededLayoutType<\/decl.name><\/decl.enum>",
             "key.kind" : "source.lang.swift.decl.enum",
             "key.length" : 1198,
@@ -36854,7 +37283,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case none<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 4,
@@ -36881,7 +37310,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case relayout<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> relayout<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 8,
@@ -36908,7 +37337,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case rebuild<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> rebuild<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 7,
@@ -36937,7 +37366,7 @@
                 ],
                 "key.bodylength" : 480,
                 "key.bodyoffset" : 6106,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> merge<\/decl.name>(with<\/decl.var.parameter.argument_label> context<\/decl.var.parameter.name>: UICollectionViewLayoutInvalidationContext<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 559,
@@ -36956,7 +37385,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let context: CollectionViewLayout<\/Type>.InvalidationContext<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> context<\/decl.name>: CollectionViewLayout<\/ref.class>.InvalidationContext<\/ref.class><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 45,
@@ -36973,7 +37402,7 @@
                   },
                   {
                     "key.annotated_decl" : "let requeryDataSourceCounts: Bool<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> requeryDataSourceCounts<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 96,
@@ -36990,7 +37419,7 @@
                   },
                   {
                     "key.annotated_decl" : "let needsRelayout: Bool<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> needsRelayout<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 85,
@@ -37022,7 +37451,7 @@
                 ],
                 "key.bodylength" : 96,
                 "key.bodyoffset" : 6663,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> merge<\/decl.name>(with<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: NeededLayoutType<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 146,
@@ -37057,7 +37486,7 @@
                 ],
                 "key.bodylength" : 155,
                 "key.bodyoffset" : 6806,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> priority<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 176,
@@ -37084,7 +37513,7 @@
                 ],
                 "key.bodylength" : 77,
                 "key.bodyoffset" : 7031,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> success<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 120,
@@ -37117,7 +37546,7 @@
                 "key.offset" : 7125
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> neededLayoutType<\/decl.name>: NeededLayoutType<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 50,
@@ -37145,7 +37574,7 @@
             ],
             "key.bodylength" : 738,
             "key.bodyoffset" : 7226,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> prepare<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 759,
@@ -37172,7 +37601,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let size: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 52,
@@ -37204,7 +37633,7 @@
             ],
             "key.bodylength" : 148,
             "key.bodyoffset" : 8070,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> prepare<\/decl.name>(forCollectionViewUpdates<\/decl.var.parameter.argument_label> updateItems<\/decl.var.parameter.name>: [UICollectionViewUpdateItem<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 235,
@@ -37255,7 +37684,7 @@
             ],
             "key.bodylength" : 124,
             "key.bodyoffset" : 8330,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> finalizeCollectionViewUpdates<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 167,
@@ -37298,7 +37727,7 @@
             ],
             "key.bodylength" : 569,
             "key.bodyoffset" : 8551,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performRebuild<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 597,
@@ -37328,7 +37757,7 @@
             ],
             "key.bodylength" : 555,
             "key.bodyoffset" : 9165,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performLayout<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 582,
@@ -37342,7 +37771,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let view: UICollectionView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: UICollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 31,
@@ -37374,7 +37803,7 @@
             ],
             "key.bodylength" : 173,
             "key.bodyoffset" : 9771,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performLayoutUpdate<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 206,
@@ -37388,7 +37817,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let view: UICollectionView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: UICollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 31,
@@ -37428,7 +37857,7 @@
             ],
             "key.bodylength" : 52,
             "key.bodyoffset" : 10071,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> collectionViewContentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 97,
@@ -37460,7 +37889,7 @@
             ],
             "key.bodylength" : 98,
             "key.bodyoffset" : 10233,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutAttributesForElements<\/decl.name>(in<\/decl.var.parameter.argument_label> rect<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [UICollectionViewLayoutAttributes<\/ref.class>]?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 193,
@@ -37488,7 +37917,7 @@
             "key.annotated_decl" : "func visibleLayoutAttributesForElements(in rect: CGRect<\/Type>) -> [UICollectionViewLayoutAttributes<\/Type>]?<\/Declaration>",
             "key.bodylength" : 99,
             "key.bodyoffset" : 10443,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> visibleLayoutAttributesForElements<\/decl.name>(in<\/decl.var.parameter.argument_label> rect<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [UICollectionViewLayoutAttributes<\/ref.class>]?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 201,
@@ -37518,7 +37947,7 @@
             ],
             "key.bodylength" : 72,
             "key.bodyoffset" : 10654,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutAttributesForItem<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 169,
@@ -37558,7 +37987,7 @@
             ],
             "key.bodylength" : 102,
             "key.bodyoffset" : 10890,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutAttributesForSupplementaryView<\/decl.name>(ofKind<\/decl.var.parameter.argument_label> elementKind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 240,
@@ -37601,7 +38030,7 @@
             ],
             "key.bodylength" : 947,
             "key.bodyoffset" : 11210,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> initialLayoutAttributesForAppearingItem<\/decl.name>(at<\/decl.var.parameter.argument_label> itemIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1064,
@@ -37620,7 +38049,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let wasInserted: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wasInserted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 108,
@@ -37652,7 +38081,7 @@
             ],
             "key.bodylength" : 967,
             "key.bodyoffset" : 12290,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> finalLayoutAttributesForDisappearingItem<\/decl.name>(at<\/decl.var.parameter.argument_label> itemIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1085,
@@ -37671,7 +38100,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let wasItemDeleted: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wasItemDeleted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 110,
@@ -37703,7 +38132,7 @@
             ],
             "key.bodylength" : 386,
             "key.bodyoffset" : 13440,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> initialLayoutAttributesForAppearingSupplementaryElement<\/decl.name>(ofKind<\/decl.var.parameter.argument_label> elementKind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> elementIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 550,
@@ -37722,7 +38151,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let wasInserted: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wasInserted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 118,
@@ -37739,7 +38168,7 @@
               },
               {
                 "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 121,
@@ -37771,7 +38200,7 @@
             ],
             "key.bodylength" : 384,
             "key.bodyoffset" : 14010,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> finalLayoutAttributesForDisappearingSupplementaryElement<\/decl.name>(ofKind<\/decl.var.parameter.argument_label> elementKind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> elementIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 549,
@@ -37790,7 +38219,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let wasDeleted: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> wasDeleted<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 116,
@@ -37807,7 +38236,7 @@
               },
               {
                 "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 122,
@@ -37847,7 +38276,7 @@
             ],
             "key.bodylength" : 309,
             "key.bodyoffset" : 14643,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutAttributesForInteractivelyMovingItem<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, withTargetPosition<\/decl.var.parameter.argument_label> position<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 462,
@@ -37866,7 +38295,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let defaultAttributes: UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> defaultAttributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 75,
@@ -37883,7 +38312,7 @@
               },
               {
                 "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 110,
@@ -37928,7 +38357,7 @@
             "key.offset" : 15036
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
         "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CollectionViewLayoutProperties<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -37948,7 +38377,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let size: CGSize<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 17,
@@ -37966,7 +38395,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let safeAreaInsets: UIEdgeInsets<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -37984,7 +38413,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let contentInset: UIEdgeInsets<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentInset<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -38004,7 +38433,7 @@
             "key.annotated_decl" : "init()<\/Declaration>",
             "key.bodylength" : 105,
             "key.bodyoffset" : 15167,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 119,
@@ -38029,7 +38458,7 @@
             "key.annotated_decl" : "init(collectionView: UICollectionView<\/Type>)<\/Declaration>",
             "key.bodylength" : 172,
             "key.bodyoffset" : 15326,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(collectionView<\/decl.var.parameter.argument_label>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 219,
@@ -38084,7 +38513,7 @@
             "key.offset" : 15601
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> CollectionViewLayoutDelegate<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -38104,7 +38533,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func listViewLayoutUpdatedItemPositions(_ collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listViewLayoutUpdatedItemPositions<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 76,
@@ -38125,7 +38554,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func listLayoutContent(defaults: ListLayoutDefaults<\/Type>) -> ListLayoutContent<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listLayoutContent<\/decl.name>(defaults<\/decl.var.parameter.argument_label>: ListLayoutDefaults<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 87,
@@ -38175,7 +38604,7 @@
             "key.offset" : 15891
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
         "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> UpdateItems<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -38195,7 +38624,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let insertedSections: Set<\/Type><InsertSection<\/Type>><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insertedSections<\/decl.name>: Set<\/ref.struct><InsertSection<\/ref.struct>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
@@ -38213,7 +38642,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let deletedSections: Set<\/Type><DeleteSection<\/Type>><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> deletedSections<\/decl.name>: Set<\/ref.struct><DeleteSection<\/ref.struct>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 40,
@@ -38231,7 +38660,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let insertedItems: Set<\/Type><InsertItem<\/Type>><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insertedItems<\/decl.name>: Set<\/ref.struct><InsertItem<\/ref.struct>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 35,
@@ -38249,7 +38678,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let deletedItems: Set<\/Type><DeleteItem<\/Type>><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> deletedItems<\/decl.name>: Set<\/ref.struct><DeleteItem<\/ref.struct>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 34,
@@ -38269,7 +38698,7 @@
             "key.annotated_decl" : "init(with updateItems: [UICollectionViewUpdateItem<\/Type>])<\/Declaration>",
             "key.bodylength" : 1375,
             "key.bodyoffset" : 16146,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> updateItems<\/decl.var.parameter.name>: [UICollectionViewUpdateItem<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1435,
@@ -38283,7 +38712,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var insertedSections: Set<\/Type><UpdateItems<\/Type>.InsertSection<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertedSections<\/decl.name>: Set<\/ref.struct><UpdateItems<\/ref.struct>.InsertSection<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 43,
@@ -38305,7 +38734,7 @@
               },
               {
                 "key.annotated_decl" : "var deletedSections: Set<\/Type><UpdateItems<\/Type>.DeleteSection<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> deletedSections<\/decl.name>: Set<\/ref.struct><UpdateItems<\/ref.struct>.DeleteSection<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 42,
@@ -38327,7 +38756,7 @@
               },
               {
                 "key.annotated_decl" : "var insertedItems: Set<\/Type><UpdateItems<\/Type>.InsertItem<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertedItems<\/decl.name>: Set<\/ref.struct><UpdateItems<\/ref.struct>.InsertItem<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 37,
@@ -38349,7 +38778,7 @@
               },
               {
                 "key.annotated_decl" : "var deletedItems: Set<\/Type><UpdateItems<\/Type>.DeleteItem<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> deletedItems<\/decl.name>: Set<\/ref.struct><UpdateItems<\/ref.struct>.DeleteItem<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 36,
@@ -38386,7 +38815,7 @@
                 "key.offset" : 17555
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> UpdateItems<\/ref.struct>.InsertSection<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -38406,7 +38835,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var newIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
@@ -38439,7 +38868,7 @@
                 "key.offset" : 17635
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> UpdateItems<\/ref.struct>.DeleteSection<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -38459,7 +38888,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var oldIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
@@ -38492,7 +38921,7 @@
                 "key.offset" : 17712
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> UpdateItems<\/ref.struct>.InsertItem<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -38512,7 +38941,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var newIndexPath: IndexPath<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> newIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 28,
@@ -38545,7 +38974,7 @@
                 "key.offset" : 17799
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> UpdateItems<\/ref.struct>.DeleteItem<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -38565,7 +38994,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var oldIndexPath: IndexPath<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/CollectionViewLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> oldIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 28,
@@ -38594,23 +39023,15 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 14618,
+    "key.length" : 16221,
     "key.offset" : 0,
     "key.substructure" : [
       {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
         "key.annotated_decl" : "public struct LayoutDescription<\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 110
-          }
-        ],
-        "key.bodylength" : 175,
-        "key.bodyoffset" : 146,
+        "key.bodylength" : 182,
+        "key.bodyoffset" : 139,
         "key.doc.column" : 15,
         "key.doc.declaration" : "public struct LayoutDescription",
         "key.doc.discussion" : [
@@ -38633,37 +39054,44 @@
             "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 42,
         "key.doc.name" : "LayoutDescription",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 205,
+        "key.length" : 212,
         "key.name" : "LayoutDescription",
         "key.namelength" : 17,
-        "key.nameoffset" : 127,
-        "key.offset" : 117,
-        "key.parsed_declaration" : "public extension LayoutDescription",
+        "key.nameoffset" : 120,
+        "key.offset" : 110,
+        "key.parsed_declaration" : "extension LayoutDescription",
         "key.parsed_scope.end" : 16,
         "key.parsed_scope.start" : 10,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "static func grid_experimental(_ configure: @escaping (inout GridAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public static func experimental_grid(_ configure: @escaping (inout GridAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 144
+              }
+            ],
             "key.bodylength" : 60,
             "key.bodyoffset" : 259,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> grid_experimental<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> GridAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> experimental_grid<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> GridAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 169,
-            "key.name" : "grid_experimental(_:)",
+            "key.name" : "experimental_grid(_:)",
             "key.namelength" : 82,
             "key.nameoffset" : 163,
             "key.offset" : 151,
-            "key.parsed_declaration" : "static func grid_experimental(_ configure : @escaping (inout GridAppearance) -> () = { _ in }) -> Self",
+            "key.parsed_declaration" : "public static func experimental_grid(_ configure : @escaping (inout GridAppearance) -> () = { _ in }) -> Self",
             "key.parsed_scope.end" : 15,
             "key.parsed_scope.start" : 12,
             "key.substructure" : [
@@ -38671,7 +39099,7 @@
             ],
             "key.typename" : "(LayoutDescription.Type) -> (@escaping (inout GridAppearance) -> ()) -> LayoutDescription",
             "key.typeusr" : "$sy10ListableUI17LayoutDescriptionVyAA14GridAppearanceVzccD",
-            "key.usr" : "s:10ListableUI17LayoutDescriptionV17grid_experimentalyACyAA14GridAppearanceVzcFZ"
+            "key.usr" : "s:10ListableUI17LayoutDescriptionV17experimental_gridyACyAA14GridAppearanceVzcFZ"
           }
         ],
         "key.typename" : "LayoutDescription.Type",
@@ -38697,7 +39125,7 @@
             "key.offset" : 356
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> GridAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -38724,7 +39152,7 @@
                 "key.offset" : 383
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -38750,7 +39178,7 @@
                 "key.offset" : 414
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: Layout<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -38778,7 +39206,7 @@
             ],
             "key.bodylength" : 23,
             "key.bodyoffset" : 489,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 56,
@@ -38808,7 +39236,7 @@
                 "key.offset" : 523
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 31,
@@ -38841,7 +39269,7 @@
             ],
             "key.bodylength" : 32,
             "key.bodyoffset" : 616,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: GridAppearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 71,
@@ -38873,7 +39301,7 @@
             ],
             "key.bodylength" : 120,
             "key.bodyoffset" : 794,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(stickySectionHeaders<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.struct><\/decl.var.parameter.type> = Sizing()<\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: Layout<\/ref.struct><\/decl.var.parameter.type> = Layout()<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 249,
@@ -38910,7 +39338,7 @@
                 "key.offset" : 948
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> GridAppearance<\/ref.struct>.Sizing<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -38937,7 +39365,7 @@
                     "key.offset" : 972
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSize<\/decl.name>: ItemSize<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 23,
@@ -38972,7 +39400,7 @@
                     "key.offset" : 1043
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> GridAppearance<\/ref.struct>.Sizing<\/ref.struct>.ItemSize<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
                 "key.inheritedtypes" : [
                   {
@@ -38999,7 +39427,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.public",
                         "key.annotated_decl" : "case fixed(CGSize<\/Type>)<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 13,
@@ -39034,7 +39462,7 @@
                     "key.offset" : 1113
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionHeaderHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 33,
@@ -39060,7 +39488,7 @@
                     "key.offset" : 1162
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionFooterHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 33,
@@ -39086,7 +39514,7 @@
                     "key.offset" : 1220
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listHeaderHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 30,
@@ -39112,7 +39540,7 @@
                     "key.offset" : 1266
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listFooterHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 30,
@@ -39138,7 +39566,7 @@
                     "key.offset" : 1312
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> overscrollFooterHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 36,
@@ -39166,7 +39594,7 @@
                 ],
                 "key.bodylength" : 335,
                 "key.bodyoffset" : 1734,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(itemSize<\/decl.var.parameter.argument_label>: ItemSize<\/ref.enum><\/decl.var.parameter.type> = .fixed(CGSize(width: 100.0, height: 100.0))<\/decl.var.parameter>, sectionHeaderHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, sectionFooterHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 40.0<\/decl.var.parameter>, listHeaderHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, listFooterHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, overscrollFooterHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 686,
@@ -39201,7 +39629,7 @@
                 ],
                 "key.bodylength" : 92,
                 "key.bodyoffset" : 2156,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(with<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Sizing<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 145,
@@ -39215,7 +39643,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "var edited: GridAppearance<\/Type>.Sizing<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> edited<\/decl.name>: GridAppearance<\/ref.struct>.Sizing<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 17,
@@ -39259,7 +39687,7 @@
                 "key.offset" : 2289
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> GridAppearance<\/ref.struct>.Layout<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -39286,7 +39714,7 @@
                     "key.offset" : 2313
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> padding<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 26,
@@ -39312,7 +39740,7 @@
                     "key.offset" : 2355
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: WidthConstraint<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 27,
@@ -39343,7 +39771,7 @@
                     "key.offset" : 2399
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interSectionSpacingWithNoFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 45,
@@ -39369,7 +39797,7 @@
                     "key.offset" : 2460
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interSectionSpacingWithFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 43,
@@ -39395,7 +39823,7 @@
                     "key.offset" : 2528
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionHeaderBottomSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 40,
@@ -39421,7 +39849,7 @@
                     "key.offset" : 2584
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemToSectionFooterSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 40,
@@ -39449,7 +39877,7 @@
                 ],
                 "key.bodylength" : 409,
                 "key.bodyoffset" : 3017,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(padding<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>, interSectionSpacingWithNoFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, interSectionSpacingWithFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, sectionHeaderBottomSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, itemToSectionFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 763,
@@ -39484,7 +39912,7 @@
                 ],
                 "key.bodylength" : 92,
                 "key.bodyoffset" : 3506,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(with<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Layout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 146,
@@ -39498,7 +39926,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "var edited: GridAppearance<\/Type>.Layout<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> edited<\/decl.name>: GridAppearance<\/ref.struct>.Layout<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 17,
@@ -39530,7 +39958,7 @@
                 ],
                 "key.bodylength" : 138,
                 "key.bodyoffset" : 3791,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> width<\/decl.name>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, padding<\/decl.var.parameter.argument_label>: HorizontalPadding<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, constraint<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
                 "key.kind" : "source.lang.swift.decl.function.method.static",
                 "key.length" : 304,
@@ -39549,7 +39977,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let paddedWidth: CGFloat<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> paddedWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 54,
@@ -39580,280 +40008,932 @@
         "key.usr" : "s:10ListableUI14GridAppearanceV"
       },
       {
-        "key.accessibility" : "source.lang.swift.accessibility.internal",
-        "key.annotated_decl" : "final class GridListLayout : ListLayout<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.final",
-            "key.length" : 5,
-            "key.offset" : 3941
-          }
-        ],
-        "key.bodylength" : 9177,
-        "key.bodyoffset" : 3982,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 10,
-            "key.offset" : 3970
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-        "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> GridListLayout<\/decl.name> : ListLayout<\/ref.protocol><\/decl.class>",
-        "key.inheritedtypes" : [
-          {
-            "key.name" : "ListLayout"
-          }
-        ],
-        "key.kind" : "source.lang.swift.decl.class",
-        "key.length" : 9213,
-        "key.name" : "GridListLayout",
+        "key.annotated_decl" : "public struct GridAppearance : ListLayoutAppearance<\/Type><\/Declaration>",
+        "key.bodylength" : 878,
+        "key.bodyoffset" : 3967,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> GridAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 905,
+        "key.name" : "GridAppearance",
         "key.namelength" : 14,
-        "key.nameoffset" : 3953,
-        "key.offset" : 3947,
-        "key.parsed_declaration" : "final class GridListLayout : ListLayout",
-        "key.parsed_scope.end" : 406,
+        "key.nameoffset" : 3951,
+        "key.offset" : 3941,
+        "key.parsed_declaration" : "extension GridAppearance",
+        "key.parsed_scope.end" : 180,
         "key.parsed_scope.start" : 136,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "typealias GridListLayout<\/Type>.LayoutAppearance = GridAppearance<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> GridListLayout<\/ref.class>.LayoutAppearance<\/decl.name> = GridAppearance<\/ref.struct><\/decl.typealias>",
-            "key.kind" : "source.lang.swift.decl.typealias",
-            "key.length" : 43,
-            "key.name" : "LayoutAppearance",
-            "key.namelength" : 16,
-            "key.nameoffset" : 3997,
-            "key.offset" : 3987,
-            "key.overrides" : [
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public struct ItemLayout : ItemLayoutsValue<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 3977
               }
             ],
-            "key.parsed_declaration" : "typealias LayoutAppearance = GridAppearance",
-            "key.parsed_scope.end" : 138,
-            "key.parsed_scope.start" : 138,
-            "key.typename" : "GridAppearance.Type",
-            "key.typeusr" : "$s10ListableUI14GridAppearanceVmD",
-            "key.usr" : "s:10ListableUI14GridListLayoutC0E10Appearancea"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 62,
-            "key.bodyoffset" : 4081,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
-            "key.kind" : "source.lang.swift.decl.var.static",
-            "key.length" : 104,
-            "key.name" : "defaults",
-            "key.namelength" : 8,
-            "key.nameoffset" : 4051,
-            "key.offset" : 4040,
-            "key.overrides" : [
+            "key.bodylength" : 147,
+            "key.bodyoffset" : 4022,
+            "key.elements" : [
               {
-                "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ"
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 16,
+                "key.offset" : 4004
               }
             ],
-            "key.parsed_declaration" : "static var defaults: ListLayoutDefaults",
-            "key.parsed_scope.end" : 142,
-            "key.parsed_scope.start" : 140,
-            "key.typename" : "ListLayoutDefaults",
-            "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD",
-            "key.usr" : "s:10ListableUI14GridListLayoutC8defaultsAA0dE8DefaultsVvpZ"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var layoutAppearance: GridAppearance<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: GridAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 36,
-            "key.name" : "layoutAppearance",
-            "key.namelength" : 16,
-            "key.nameoffset" : 4158,
-            "key.offset" : 4154,
-            "key.overrides" : [
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayout<\/decl.name> : ItemLayoutsValue<\/ref.protocol><\/decl.struct>",
+            "key.inheritedtypes" : [
               {
-                "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp"
+                "key.name" : "ItemLayoutsValue"
               }
             ],
-            "key.parsed_declaration" : "var layoutAppearance: GridAppearance",
-            "key.parsed_scope.end" : 144,
-            "key.parsed_scope.start" : 144,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "GridAppearance",
-            "key.typeusr" : "$s10ListableUI14GridAppearanceVD",
-            "key.usr" : "s:10ListableUI14GridListLayoutC16layoutAppearanceAA0cG0Vvp"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 23,
-            "key.name" : "MARK: Public Properties",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 4210
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let appearance: Appearance<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 27,
-            "key.name" : "appearance",
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 186,
+            "key.name" : "ItemLayout",
             "key.namelength" : 10,
-            "key.nameoffset" : 4258,
-            "key.offset" : 4254,
-            "key.overrides" : [
+            "key.nameoffset" : 3991,
+            "key.offset" : 3984,
+            "key.parsed_declaration" : "public struct ItemLayout : ItemLayoutsValue",
+            "key.parsed_scope.end" : 147,
+            "key.parsed_scope.start" : 138,
+            "key.substructure" : [
               {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp"
-              }
-            ],
-            "key.parsed_declaration" : "let appearance : Appearance",
-            "key.parsed_scope.end" : 150,
-            "key.parsed_scope.start" : 150,
-            "key.typename" : "Appearance",
-            "key.typeusr" : "$s10ListableUI10AppearanceVD",
-            "key.usr" : "s:10ListableUI14GridListLayoutC10appearanceAA10AppearanceVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let behavior: Behavior<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 23,
-            "key.name" : "behavior",
-            "key.namelength" : 8,
-            "key.nameoffset" : 4290,
-            "key.offset" : 4286,
-            "key.overrides" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 4040
+                  }
+                ],
+                "key.bodylength" : 29,
+                "key.bodyoffset" : 4078,
+                "key.doc.column" : 16,
+                "key.doc.declaration" : "static var defaultValue: Self { get }",
+                "key.doc.discussion" : [
+                  {
+                    "Note" : ""
+                  }
+                ],
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+                "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from ItemLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.line" : 112,
+                "key.doc.name" : "defaultValue",
+                "key.doc.type" : "Other",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+                "key.kind" : "source.lang.swift.decl.var.static",
+                "key.length" : 61,
+                "key.name" : "defaultValue",
+                "key.namelength" : 12,
+                "key.nameoffset" : 4058,
+                "key.offset" : 4047,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ"
+                  }
+                ],
+                "key.parsed_declaration" : "public static var defaultValue: Self",
+                "key.parsed_scope.end" : 142,
+                "key.parsed_scope.start" : 140,
+                "key.typename" : "GridAppearance.ItemLayout",
+                "key.typeusr" : "$s10ListableUI14GridAppearanceV10ItemLayoutVD",
+                "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ"
+              },
               {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp"
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public init()<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 4126
+                  }
+                ],
+                "key.bodylength" : 22,
+                "key.bodyoffset" : 4141,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 31,
+                "key.name" : "init()",
+                "key.namelength" : 6,
+                "key.nameoffset" : 4133,
+                "key.offset" : 4133,
+                "key.parsed_declaration" : "public init()",
+                "key.parsed_scope.end" : 146,
+                "key.parsed_scope.start" : 144,
+                "key.typename" : "(GridAppearance.ItemLayout.Type) -> () -> GridAppearance.ItemLayout",
+                "key.typeusr" : "$s10ListableUI14GridAppearanceV10ItemLayoutVycD",
+                "key.usr" : "s:10ListableUI14GridAppearanceV10ItemLayoutVAEycfc"
               }
             ],
-            "key.parsed_declaration" : "let behavior : Behavior",
-            "key.parsed_scope.end" : 151,
-            "key.parsed_scope.start" : 151,
-            "key.typename" : "Behavior",
-            "key.typeusr" : "$s10ListableUI8BehaviorVD",
-            "key.usr" : "s:10ListableUI14GridListLayoutC8behaviorAA8BehaviorVvp"
+            "key.typename" : "GridAppearance.ItemLayout.Type",
+            "key.typeusr" : "$s10ListableUI14GridAppearanceV10ItemLayoutVmD",
+            "key.usr" : "s:10ListableUI14GridAppearanceV10ItemLayoutV"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let content: ListLayoutContent<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 31,
-            "key.name" : "content",
-            "key.namelength" : 7,
-            "key.nameoffset" : 4323,
-            "key.offset" : 4319,
-            "key.overrides" : [
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public struct HeaderFooterLayout : HeaderFooterLayoutsValue<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 4185
               }
             ],
-            "key.parsed_declaration" : "let content : ListLayoutContent",
-            "key.parsed_scope.end" : 153,
-            "key.parsed_scope.start" : 153,
-            "key.typename" : "ListLayoutContent",
-            "key.typeusr" : "$s10ListableUI17ListLayoutContentCD",
-            "key.usr" : "s:10ListableUI14GridListLayoutC7contentAA0dE7ContentCvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 303,
-            "key.bodyoffset" : 4426,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 362,
-            "key.name" : "scrollViewProperties",
-            "key.namelength" : 20,
-            "key.nameoffset" : 4372,
-            "key.offset" : 4368,
-            "key.overrides" : [
+            "key.bodylength" : 265,
+            "key.bodyoffset" : 4246,
+            "key.elements" : [
               {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp"
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 24,
+                "key.offset" : 4220
               }
             ],
-            "key.parsed_declaration" : "var scrollViewProperties: ListLayoutScrollViewProperties",
-            "key.parsed_scope.end" : 164,
-            "key.parsed_scope.start" : 155,
-            "key.typename" : "ListLayoutScrollViewProperties",
-            "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD",
-            "key.usr" : "s:10ListableUI14GridListLayoutC20scrollViewPropertiesAA0de6ScrollgH0Vvp"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 20,
-            "key.name" : "MARK: Initialization",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 4750
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "init(layoutAppearance: GridAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>",
-            "key.bodylength" : 164,
-            "key.bodyoffset" : 4937,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: GridAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 315,
-            "key.name" : "init(layoutAppearance:appearance:behavior:content:)",
-            "key.namelength" : 148,
-            "key.nameoffset" : 4787,
-            "key.offset" : 4787,
-            "key.overrides" : [
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayout<\/decl.name> : HeaderFooterLayoutsValue<\/ref.protocol><\/decl.struct>",
+            "key.inheritedtypes" : [
               {
-                "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc"
+                "key.name" : "HeaderFooterLayoutsValue"
               }
             ],
-            "key.parsed_declaration" : "init(\n    layoutAppearance: GridAppearance,\n    appearance: Appearance,\n    behavior: Behavior,\n    content: ListLayoutContent\n)",
-            "key.parsed_scope.end" : 181,
-            "key.parsed_scope.start" : 170,
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 320,
+            "key.name" : "HeaderFooterLayout",
+            "key.namelength" : 18,
+            "key.nameoffset" : 4199,
+            "key.offset" : 4192,
+            "key.parsed_declaration" : "public struct HeaderFooterLayout : HeaderFooterLayoutsValue",
+            "key.parsed_scope.end" : 163,
+            "key.parsed_scope.start" : 150,
             "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 4264
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 23,
+                "key.name" : "width",
+                "key.namelength" : 5,
+                "key.nameoffset" : 4275,
+                "key.offset" : 4271,
+                "key.parsed_declaration" : "public var width : CustomWidth",
+                "key.parsed_scope.end" : 152,
+                "key.parsed_scope.start" : 152,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CustomWidth",
+                "key.typeusr" : "$s10ListableUI11CustomWidthOD",
+                "key.usr" : "s:10ListableUI14GridAppearanceV18HeaderFooterLayoutV5widthAA11CustomWidthOvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 4312
+                  }
+                ],
+                "key.bodylength" : 29,
+                "key.bodyoffset" : 4350,
+                "key.doc.column" : 16,
+                "key.doc.declaration" : "static var defaultValue: Self { get }",
+                "key.doc.discussion" : [
+                  {
+                    "Note" : ""
+                  }
+                ],
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+                "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from HeaderFooterLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.line" : 113,
+                "key.doc.name" : "defaultValue",
+                "key.doc.type" : "Other",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+                "key.kind" : "source.lang.swift.decl.var.static",
+                "key.length" : 61,
+                "key.name" : "defaultValue",
+                "key.namelength" : 12,
+                "key.nameoffset" : 4330,
+                "key.offset" : 4319,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ"
+                  }
+                ],
+                "key.parsed_declaration" : "public static var defaultValue: Self",
+                "key.parsed_scope.end" : 156,
+                "key.parsed_scope.start" : 154,
+                "key.typename" : "GridAppearance.HeaderFooterLayout",
+                "key.typeusr" : "$s10ListableUI14GridAppearanceV18HeaderFooterLayoutVD",
+                "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public init(width: CustomWidth<\/Type> = .default)<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 4398
+                  }
+                ],
+                "key.bodylength" : 40,
+                "key.bodyoffset" : 4465,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 101,
+                "key.name" : "init(width:)",
+                "key.namelength" : 58,
+                "key.nameoffset" : 4405,
+                "key.offset" : 4405,
+                "key.parsed_declaration" : "public init(\n    width : CustomWidth = .default\n)",
+                "key.parsed_scope.end" : 162,
+                "key.parsed_scope.start" : 158,
+                "key.substructure" : [
 
+                ],
+                "key.typename" : "(GridAppearance.HeaderFooterLayout.Type) -> (CustomWidth) -> GridAppearance.HeaderFooterLayout",
+                "key.typeusr" : "$s5width10ListableUI14GridAppearanceV18HeaderFooterLayoutVAB11CustomWidthO_tcD",
+                "key.usr" : "s:10ListableUI14GridAppearanceV18HeaderFooterLayoutV5widthAeA11CustomWidthO_tcfc"
+              }
             ],
-            "key.typename" : "(GridListLayout.Type) -> (GridAppearance, Appearance, Behavior, ListLayoutContent) -> GridListLayout",
-            "key.typeusr" : "$s16layoutAppearance10appearance8behavior7content10ListableUI14GridListLayoutCAE0hB0V_AE0B0VAE8BehaviorVAE0iJ7ContentCtcD",
-            "key.usr" : "s:10ListableUI14GridListLayoutC16layoutAppearance10appearance8behavior7contentAcA0cG0V_AA0G0VAA8BehaviorVAA0dE7ContentCtcfc"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 24,
-            "key.name" : "MARK: Performing Layouts",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 5118
+            "key.typename" : "GridAppearance.HeaderFooterLayout.Type",
+            "key.typeusr" : "$s10ListableUI14GridAppearanceV18HeaderFooterLayoutVmD",
+            "key.usr" : "s:10ListableUI14GridAppearanceV18HeaderFooterLayoutV"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func updateLayout(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.bodylength" : 14,
-            "key.bodyoffset" : 5219,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public struct SectionLayout : SectionLayoutsValue<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 4527
+              }
+            ],
+            "key.bodylength" : 265,
+            "key.bodyoffset" : 4578,
+            "key.elements" : [
+              {
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 19,
+                "key.offset" : 4557
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayout<\/decl.name> : SectionLayoutsValue<\/ref.protocol><\/decl.struct>",
+            "key.inheritedtypes" : [
+              {
+                "key.name" : "SectionLayoutsValue"
+              }
+            ],
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 310,
+            "key.name" : "SectionLayout",
+            "key.namelength" : 13,
+            "key.nameoffset" : 4541,
+            "key.offset" : 4534,
+            "key.parsed_declaration" : "public struct SectionLayout : SectionLayoutsValue",
+            "key.parsed_scope.end" : 179,
+            "key.parsed_scope.start" : 166,
+            "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 4596
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 23,
+                "key.name" : "width",
+                "key.namelength" : 5,
+                "key.nameoffset" : 4607,
+                "key.offset" : 4603,
+                "key.parsed_declaration" : "public var width : CustomWidth",
+                "key.parsed_scope.end" : 168,
+                "key.parsed_scope.start" : 168,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CustomWidth",
+                "key.typeusr" : "$s10ListableUI11CustomWidthOD",
+                "key.usr" : "s:10ListableUI14GridAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 4644
+                  }
+                ],
+                "key.bodylength" : 29,
+                "key.bodyoffset" : 4682,
+                "key.doc.column" : 16,
+                "key.doc.declaration" : "static var defaultValue: Self { get }",
+                "key.doc.discussion" : [
+                  {
+                    "Note" : ""
+                  }
+                ],
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+                "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from SectionLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.line" : 112,
+                "key.doc.name" : "defaultValue",
+                "key.doc.type" : "Other",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+                "key.kind" : "source.lang.swift.decl.var.static",
+                "key.length" : 61,
+                "key.name" : "defaultValue",
+                "key.namelength" : 12,
+                "key.nameoffset" : 4662,
+                "key.offset" : 4651,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ"
+                  }
+                ],
+                "key.parsed_declaration" : "public static var defaultValue: Self",
+                "key.parsed_scope.end" : 172,
+                "key.parsed_scope.start" : 170,
+                "key.typename" : "GridAppearance.SectionLayout",
+                "key.typeusr" : "$s10ListableUI14GridAppearanceV13SectionLayoutVD",
+                "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public init(width: CustomWidth<\/Type> = .default)<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 4730
+                  }
+                ],
+                "key.bodylength" : 40,
+                "key.bodyoffset" : 4797,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 101,
+                "key.name" : "init(width:)",
+                "key.namelength" : 58,
+                "key.nameoffset" : 4737,
+                "key.offset" : 4737,
+                "key.parsed_declaration" : "public init(\n    width : CustomWidth = .default\n)",
+                "key.parsed_scope.end" : 178,
+                "key.parsed_scope.start" : 174,
+                "key.substructure" : [
+
+                ],
+                "key.typename" : "(GridAppearance.SectionLayout.Type) -> (CustomWidth) -> GridAppearance.SectionLayout",
+                "key.typeusr" : "$s5width10ListableUI14GridAppearanceV13SectionLayoutVAB11CustomWidthO_tcD",
+                "key.usr" : "s:10ListableUI14GridAppearanceV13SectionLayoutV5widthAeA11CustomWidthO_tcfc"
+              }
+            ],
+            "key.typename" : "GridAppearance.SectionLayout.Type",
+            "key.typeusr" : "$s10ListableUI14GridAppearanceV13SectionLayoutVmD",
+            "key.usr" : "s:10ListableUI14GridAppearanceV13SectionLayoutV"
+          }
+        ],
+        "key.typename" : "GridAppearance.Type",
+        "key.typeusr" : "$s10ListableUI14GridAppearanceVmD",
+        "key.usr" : "s:10ListableUI14GridAppearanceV"
+      },
+      {
+        "key.annotated_decl" : "public struct ItemLayouts<\/Declaration>",
+        "key.bodylength" : 174,
+        "key.bodyoffset" : 4872,
+        "key.doc.column" : 15,
+        "key.doc.declaration" : "public struct ItemLayouts",
+        "key.doc.discussion" : [
+          {
+            "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your item:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "And then, when the `Item` is used within a `.table` style list layout, the provided layout will be used."
+          },
+          {
+            "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "When implementing your own custom layout, you should add an extension to `ItemLayouts`, to provide easier access to your layout-specific `ItemLayoutsValue` type, like so:"
+          },
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+        "key.doc.full_as_xml" : "ItemLayouts<\/Name>s:10ListableUI11ItemLayoutsV<\/USR>public struct ItemLayouts<\/Declaration>ItemLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your item:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Item<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to ItemLayouts<\/codeVoice>, to provide easier access to your layout-specific ItemLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 54,
+        "key.doc.name" : "ItemLayouts",
+        "key.doc.type" : "Class",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayouts<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 198,
+        "key.name" : "ItemLayouts",
+        "key.namelength" : 11,
+        "key.nameoffset" : 4859,
+        "key.offset" : 4849,
+        "key.parsed_declaration" : "extension ItemLayouts",
+        "key.parsed_scope.end" : 188,
+        "key.parsed_scope.start" : 183,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var grid: GridAppearance<\/Type>.ItemLayout<\/Type> { get set }<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 4877
+              }
+            ],
+            "key.bodylength" : 122,
+            "key.bodyoffset" : 4922,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> grid<\/decl.name>: GridAppearance<\/ref.struct>.ItemLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 161,
+            "key.name" : "grid",
+            "key.namelength" : 4,
+            "key.nameoffset" : 4888,
+            "key.offset" : 4884,
+            "key.parsed_declaration" : "public var grid : GridAppearance.ItemLayout",
+            "key.parsed_scope.end" : 187,
+            "key.parsed_scope.start" : 184,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "GridAppearance.ItemLayout",
+            "key.typeusr" : "$s10ListableUI14GridAppearanceV10ItemLayoutVD",
+            "key.usr" : "s:10ListableUI11ItemLayoutsV4gridAA14GridAppearanceV0C6LayoutVvp"
+          }
+        ],
+        "key.typename" : "ItemLayouts.Type",
+        "key.typeusr" : "$s10ListableUI11ItemLayoutsVmD",
+        "key.usr" : "s:10ListableUI11ItemLayoutsV"
+      },
+      {
+        "key.annotated_decl" : "public struct HeaderFooterLayouts<\/Declaration>",
+        "key.bodylength" : 198,
+        "key.bodyoffset" : 5081,
+        "key.doc.column" : 15,
+        "key.doc.declaration" : "public struct HeaderFooterLayouts",
+        "key.doc.discussion" : [
+          {
+            "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your header:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "And then, when the `HeaderFooter` is used within a `.table` style list layout, the provided layout will be used."
+          },
+          {
+            "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "When implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`, to provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:"
+          },
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+        "key.doc.full_as_xml" : "HeaderFooterLayouts<\/Name>s:10ListableUI19HeaderFooterLayoutsV<\/USR>public struct HeaderFooterLayouts<\/Declaration>HeaderFooterLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your header:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the HeaderFooter<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to HeaderFooterLayouts<\/codeVoice>, to provide easier access to your layout-specific HeaderFooterLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 55,
+        "key.doc.name" : "HeaderFooterLayouts",
+        "key.doc.type" : "Class",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayouts<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 230,
+        "key.name" : "HeaderFooterLayouts",
+        "key.namelength" : 19,
+        "key.nameoffset" : 5060,
+        "key.offset" : 5050,
+        "key.parsed_declaration" : "extension HeaderFooterLayouts",
+        "key.parsed_scope.end" : 196,
+        "key.parsed_scope.start" : 191,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var grid: GridAppearance<\/Type>.HeaderFooterLayout<\/Type> { get set }<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 5086
+              }
+            ],
+            "key.bodylength" : 138,
+            "key.bodyoffset" : 5139,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> grid<\/decl.name>: GridAppearance<\/ref.struct>.HeaderFooterLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 185,
+            "key.name" : "grid",
+            "key.namelength" : 4,
+            "key.nameoffset" : 5097,
+            "key.offset" : 5093,
+            "key.parsed_declaration" : "public var grid : GridAppearance.HeaderFooterLayout",
+            "key.parsed_scope.end" : 195,
+            "key.parsed_scope.start" : 192,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "GridAppearance.HeaderFooterLayout",
+            "key.typeusr" : "$s10ListableUI14GridAppearanceV18HeaderFooterLayoutVD",
+            "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV4gridAA14GridAppearanceV0cD6LayoutVvp"
+          }
+        ],
+        "key.typename" : "HeaderFooterLayouts.Type",
+        "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVmD",
+        "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV"
+      },
+      {
+        "key.annotated_decl" : "public struct SectionLayouts<\/Declaration>",
+        "key.bodylength" : 183,
+        "key.bodyoffset" : 5308,
+        "key.doc.column" : 15,
+        "key.doc.declaration" : "public struct SectionLayouts",
+        "key.doc.discussion" : [
+          {
+            "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your section:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "And then, when the `Section` is used within a `.table` style list layout, the provided layout will be used."
+          },
+          {
+            "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "When implementing your own custom layout, you should add an extension to `SectionLayouts`, to provide easier access to your layout-specific `SectionLayoutsValue` type, like so:"
+          },
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+        "key.doc.full_as_xml" : "SectionLayouts<\/Name>s:10ListableUI14SectionLayoutsV<\/USR>public struct SectionLayouts<\/Declaration>SectionLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your section:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Section<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to SectionLayouts<\/codeVoice>, to provide easier access to your layout-specific SectionLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 54,
+        "key.doc.name" : "SectionLayouts",
+        "key.doc.type" : "Class",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayouts<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 210,
+        "key.name" : "SectionLayouts",
+        "key.namelength" : 14,
+        "key.nameoffset" : 5292,
+        "key.offset" : 5282,
+        "key.parsed_declaration" : "extension SectionLayouts",
+        "key.parsed_scope.end" : 203,
+        "key.parsed_scope.start" : 198,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var grid: GridAppearance<\/Type>.SectionLayout<\/Type> { get set }<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 5313
+              }
+            ],
+            "key.bodylength" : 128,
+            "key.bodyoffset" : 5361,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> grid<\/decl.name>: GridAppearance<\/ref.struct>.SectionLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 170,
+            "key.name" : "grid",
+            "key.namelength" : 4,
+            "key.nameoffset" : 5324,
+            "key.offset" : 5320,
+            "key.parsed_declaration" : "public var grid : GridAppearance.SectionLayout",
+            "key.parsed_scope.end" : 202,
+            "key.parsed_scope.start" : 199,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "GridAppearance.SectionLayout",
+            "key.typeusr" : "$s10ListableUI14GridAppearanceV13SectionLayoutVD",
+            "key.usr" : "s:10ListableUI14SectionLayoutsV4gridAA14GridAppearanceV0C6LayoutVvp"
+          }
+        ],
+        "key.typename" : "SectionLayouts.Type",
+        "key.typeusr" : "$s10ListableUI14SectionLayoutsVmD",
+        "key.usr" : "s:10ListableUI14SectionLayoutsV"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.internal",
+        "key.annotated_decl" : "final class GridListLayout : ListLayout<\/Type><\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.final",
+            "key.length" : 5,
+            "key.offset" : 5495
+          }
+        ],
+        "key.bodylength" : 9226,
+        "key.bodyoffset" : 5536,
+        "key.elements" : [
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 10,
+            "key.offset" : 5524
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+        "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> GridListLayout<\/decl.name> : ListLayout<\/ref.protocol><\/decl.class>",
+        "key.inheritedtypes" : [
+          {
+            "key.name" : "ListLayout"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.class",
+        "key.length" : 9262,
+        "key.name" : "GridListLayout",
+        "key.namelength" : 14,
+        "key.nameoffset" : 5507,
+        "key.offset" : 5501,
+        "key.parsed_declaration" : "final class GridListLayout : ListLayout",
+        "key.parsed_scope.end" : 476,
+        "key.parsed_scope.start" : 206,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "typealias GridListLayout<\/Type>.LayoutAppearance = GridAppearance<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> GridListLayout<\/ref.class>.LayoutAppearance<\/decl.name> = GridAppearance<\/ref.struct><\/decl.typealias>",
+            "key.kind" : "source.lang.swift.decl.typealias",
+            "key.length" : 43,
+            "key.name" : "LayoutAppearance",
+            "key.namelength" : 16,
+            "key.nameoffset" : 5551,
+            "key.offset" : 5541,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa"
+              }
+            ],
+            "key.parsed_declaration" : "typealias LayoutAppearance = GridAppearance",
+            "key.parsed_scope.end" : 208,
+            "key.parsed_scope.start" : 208,
+            "key.typename" : "GridAppearance.Type",
+            "key.typeusr" : "$s10ListableUI14GridAppearanceVmD",
+            "key.usr" : "s:10ListableUI14GridListLayoutC0E10Appearancea"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 62,
+            "key.bodyoffset" : 5635,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+            "key.kind" : "source.lang.swift.decl.var.static",
+            "key.length" : 104,
+            "key.name" : "defaults",
+            "key.namelength" : 8,
+            "key.nameoffset" : 5605,
+            "key.offset" : 5594,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ"
+              }
+            ],
+            "key.parsed_declaration" : "static var defaults: ListLayoutDefaults",
+            "key.parsed_scope.end" : 212,
+            "key.parsed_scope.start" : 210,
+            "key.typename" : "ListLayoutDefaults",
+            "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD",
+            "key.usr" : "s:10ListableUI14GridListLayoutC8defaultsAA0dE8DefaultsVvpZ"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var layoutAppearance: GridAppearance<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: GridAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 36,
+            "key.name" : "layoutAppearance",
+            "key.namelength" : 16,
+            "key.nameoffset" : 5712,
+            "key.offset" : 5708,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp"
+              }
+            ],
+            "key.parsed_declaration" : "var layoutAppearance: GridAppearance",
+            "key.parsed_scope.end" : 214,
+            "key.parsed_scope.start" : 214,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "GridAppearance",
+            "key.typeusr" : "$s10ListableUI14GridAppearanceVD",
+            "key.usr" : "s:10ListableUI14GridListLayoutC16layoutAppearanceAA0cG0Vvp"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 23,
+            "key.name" : "MARK: Public Properties",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 5764
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let appearance: Appearance<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 27,
+            "key.name" : "appearance",
+            "key.namelength" : 10,
+            "key.nameoffset" : 5812,
+            "key.offset" : 5808,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp"
+              }
+            ],
+            "key.parsed_declaration" : "let appearance : Appearance",
+            "key.parsed_scope.end" : 220,
+            "key.parsed_scope.start" : 220,
+            "key.typename" : "Appearance",
+            "key.typeusr" : "$s10ListableUI10AppearanceVD",
+            "key.usr" : "s:10ListableUI14GridListLayoutC10appearanceAA10AppearanceVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let behavior: Behavior<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 23,
+            "key.name" : "behavior",
+            "key.namelength" : 8,
+            "key.nameoffset" : 5844,
+            "key.offset" : 5840,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp"
+              }
+            ],
+            "key.parsed_declaration" : "let behavior : Behavior",
+            "key.parsed_scope.end" : 221,
+            "key.parsed_scope.start" : 221,
+            "key.typename" : "Behavior",
+            "key.typeusr" : "$s10ListableUI8BehaviorVD",
+            "key.usr" : "s:10ListableUI14GridListLayoutC8behaviorAA8BehaviorVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let content: ListLayoutContent<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 31,
+            "key.name" : "content",
+            "key.namelength" : 7,
+            "key.nameoffset" : 5877,
+            "key.offset" : 5873,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp"
+              }
+            ],
+            "key.parsed_declaration" : "let content : ListLayoutContent",
+            "key.parsed_scope.end" : 223,
+            "key.parsed_scope.start" : 223,
+            "key.typename" : "ListLayoutContent",
+            "key.typeusr" : "$s10ListableUI17ListLayoutContentCD",
+            "key.usr" : "s:10ListableUI14GridListLayoutC7contentAA0dE7ContentCvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 303,
+            "key.bodyoffset" : 5980,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 362,
+            "key.name" : "scrollViewProperties",
+            "key.namelength" : 20,
+            "key.nameoffset" : 5926,
+            "key.offset" : 5922,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp"
+              }
+            ],
+            "key.parsed_declaration" : "var scrollViewProperties: ListLayoutScrollViewProperties",
+            "key.parsed_scope.end" : 234,
+            "key.parsed_scope.start" : 225,
+            "key.typename" : "ListLayoutScrollViewProperties",
+            "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD",
+            "key.usr" : "s:10ListableUI14GridListLayoutC20scrollViewPropertiesAA0de6ScrollgH0Vvp"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 20,
+            "key.name" : "MARK: Initialization",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 6304
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "init(layoutAppearance: GridAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>",
+            "key.bodylength" : 164,
+            "key.bodyoffset" : 6491,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: GridAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 315,
+            "key.name" : "init(layoutAppearance:appearance:behavior:content:)",
+            "key.namelength" : 148,
+            "key.nameoffset" : 6341,
+            "key.offset" : 6341,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc"
+              }
+            ],
+            "key.parsed_declaration" : "init(\n    layoutAppearance: GridAppearance,\n    appearance: Appearance,\n    behavior: Behavior,\n    content: ListLayoutContent\n)",
+            "key.parsed_scope.end" : 251,
+            "key.parsed_scope.start" : 240,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(GridListLayout.Type) -> (GridAppearance, Appearance, Behavior, ListLayoutContent) -> GridListLayout",
+            "key.typeusr" : "$s16layoutAppearance10appearance8behavior7content10ListableUI14GridListLayoutCAE0hB0V_AE0B0VAE8BehaviorVAE0iJ7ContentCtcD",
+            "key.usr" : "s:10ListableUI14GridListLayoutC16layoutAppearance10appearance8behavior7contentAcA0cG0V_AA0G0VAA8BehaviorVAA0dE7ContentCtcfc"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 24,
+            "key.name" : "MARK: Performing Layouts",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 6672
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func updateLayout(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
+            "key.bodylength" : 14,
+            "key.bodyoffset" : 6773,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 75,
             "key.name" : "updateLayout(in:)",
             "key.namelength" : 49,
-            "key.nameoffset" : 5164,
-            "key.offset" : 5159,
+            "key.nameoffset" : 6718,
+            "key.offset" : 6713,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF"
               }
             ],
             "key.parsed_declaration" : "func updateLayout(in collectionView: UICollectionView)",
-            "key.parsed_scope.end" : 190,
-            "key.parsed_scope.start" : 187,
+            "key.parsed_scope.end" : 260,
+            "key.parsed_scope.start" : 257,
             "key.substructure" : [
 
             ],
@@ -39864,55 +40944,55 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func layout(delegate: CollectionViewLayoutDelegate<\/Type>, in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.bodylength" : 7791,
-            "key.bodyoffset" : 5366,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.bodylength" : 7840,
+            "key.bodyoffset" : 6920,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layout<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 7914,
+            "key.length" : 7963,
             "key.name" : "layout(delegate:in:)",
             "key.namelength" : 111,
-            "key.nameoffset" : 5249,
-            "key.offset" : 5244,
+            "key.nameoffset" : 6803,
+            "key.offset" : 6798,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
               }
             ],
             "key.parsed_declaration" : "func layout(\n    delegate : CollectionViewLayoutDelegate,\n    in collectionView : UICollectionView\n    )",
-            "key.parsed_scope.end" : 405,
-            "key.parsed_scope.start" : 192,
+            "key.parsed_scope.end" : 475,
+            "key.parsed_scope.start" : 262,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let direction: LayoutDirection<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 47,
                 "key.name" : "direction",
                 "key.namelength" : 9,
-                "key.nameoffset" : 5379,
-                "key.offset" : 5375,
+                "key.nameoffset" : 6933,
+                "key.offset" : 6929,
                 "key.parsed_declaration" : "let direction = self.layoutAppearance.direction",
-                "key.parsed_scope.end" : 197,
-                "key.parsed_scope.start" : 197,
+                "key.parsed_scope.end" : 267,
+                "key.parsed_scope.start" : 267,
                 "key.typename" : "LayoutDirection",
                 "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
                 "key.usr" : "s:10ListableUI14GridListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF9directionL_AA0E9DirectionOvp"
               },
               {
                 "key.annotated_decl" : "let layout: GridAppearance<\/Type>.Layout<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: GridAppearance<\/ref.struct>.Layout<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 41,
                 "key.name" : "layout",
                 "key.namelength" : 6,
-                "key.nameoffset" : 5435,
-                "key.offset" : 5431,
+                "key.nameoffset" : 6989,
+                "key.offset" : 6985,
                 "key.parsed_declaration" : "let layout = self.layoutAppearance.layout",
-                "key.parsed_scope.end" : 198,
-                "key.parsed_scope.start" : 198,
+                "key.parsed_scope.end" : 268,
+                "key.parsed_scope.start" : 268,
                 "key.related_decls" : [
                   {
                     "key.annotated_decl" : "layout(delegate:in:)<\/RelatedName>"
@@ -39924,102 +41004,102 @@
               },
               {
                 "key.annotated_decl" : "let sizing: GridAppearance<\/Type>.Sizing<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sizing<\/decl.name>: GridAppearance<\/ref.struct>.Sizing<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 41,
                 "key.name" : "sizing",
                 "key.namelength" : 6,
-                "key.nameoffset" : 5485,
-                "key.offset" : 5481,
+                "key.nameoffset" : 7039,
+                "key.offset" : 7035,
                 "key.parsed_declaration" : "let sizing = self.layoutAppearance.sizing",
-                "key.parsed_scope.end" : 199,
-                "key.parsed_scope.start" : 199,
+                "key.parsed_scope.end" : 269,
+                "key.parsed_scope.start" : 269,
                 "key.typename" : "GridAppearance.Sizing",
                 "key.typeusr" : "$s10ListableUI14GridAppearanceV6SizingVD",
                 "key.usr" : "s:10ListableUI14GridListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF6sizingL_AA0C10AppearanceV6SizingVvp"
               },
               {
                 "key.annotated_decl" : "let viewSize: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 41,
                 "key.name" : "viewSize",
                 "key.namelength" : 8,
-                "key.nameoffset" : 5544,
-                "key.offset" : 5540,
+                "key.nameoffset" : 7098,
+                "key.offset" : 7094,
                 "key.parsed_declaration" : "let viewSize = collectionView.bounds.size",
-                "key.parsed_scope.end" : 201,
-                "key.parsed_scope.start" : 201,
+                "key.parsed_scope.end" : 271,
+                "key.parsed_scope.start" : 271,
                 "key.typename" : "CGSize",
                 "key.typeusr" : "$sSo6CGSizeVD",
                 "key.usr" : "s:10ListableUI14GridListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF8viewSizeL_So6CGSizeVvp"
               },
               {
                 "key.annotated_decl" : "let viewWidth: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 30,
                 "key.name" : "viewWidth",
                 "key.namelength" : 9,
-                "key.nameoffset" : 5603,
-                "key.offset" : 5599,
+                "key.nameoffset" : 7157,
+                "key.offset" : 7153,
                 "key.parsed_declaration" : "let viewWidth = viewSize.width",
-                "key.parsed_scope.end" : 203,
-                "key.parsed_scope.start" : 203,
+                "key.parsed_scope.end" : 273,
+                "key.parsed_scope.start" : 273,
                 "key.typename" : "CGFloat",
                 "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
                 "key.usr" : "s:10ListableUI14GridListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF9viewWidthL_12CoreGraphics7CGFloatVvp"
               },
               {
                 "key.annotated_decl" : "let rootWidth: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rootWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 216,
+                "key.length" : 217,
                 "key.name" : "rootWidth",
                 "key.namelength" : 9,
-                "key.nameoffset" : 5651,
-                "key.offset" : 5647,
-                "key.parsed_declaration" : "let rootWidth = ListAppearance.Layout.width(\n    with: viewWidth,\n    padding: HorizontalPadding(left: layout.padding.left, right: layout.padding.right),\n    constraint: layout.width\n)",
-                "key.parsed_scope.end" : 205,
-                "key.parsed_scope.start" : 205,
+                "key.nameoffset" : 7205,
+                "key.offset" : 7201,
+                "key.parsed_declaration" : "let rootWidth = TableAppearance.Layout.width(\n    with: viewWidth,\n    padding: HorizontalPadding(left: layout.padding.left, right: layout.padding.right),\n    constraint: layout.width\n)",
+                "key.parsed_scope.end" : 275,
+                "key.parsed_scope.start" : 275,
                 "key.typename" : "CGFloat",
                 "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
                 "key.usr" : "s:10ListableUI14GridListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF9rootWidthL_12CoreGraphics7CGFloatVvp"
               },
               {
                 "key.annotated_decl" : "var lastSectionMaxY: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastSectionMaxY<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 35,
                 "key.name" : "lastSectionMaxY",
                 "key.namelength" : 15,
-                "key.nameoffset" : 5945,
-                "key.offset" : 5941,
+                "key.nameoffset" : 7500,
+                "key.offset" : 7496,
                 "key.parsed_declaration" : "var lastSectionMaxY : CGFloat = 0.0",
-                "key.parsed_scope.end" : 215,
-                "key.parsed_scope.start" : 215,
+                "key.parsed_scope.end" : 285,
+                "key.parsed_scope.start" : 285,
                 "key.typename" : "CGFloat",
                 "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
                 "key.usr" : "s:10ListableUI14GridListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF15lastSectionMaxYL_12CoreGraphics7CGFloatVvp"
               },
               {
                 "key.annotated_decl" : "var lastContentMaxY: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastContentMaxY<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 35,
                 "key.name" : "lastContentMaxY",
                 "key.namelength" : 15,
-                "key.nameoffset" : 5989,
-                "key.offset" : 5985,
+                "key.nameoffset" : 7544,
+                "key.offset" : 7540,
                 "key.parsed_declaration" : "var lastContentMaxY : CGFloat = 0.0",
-                "key.parsed_scope.end" : 216,
-                "key.parsed_scope.start" : 216,
+                "key.parsed_scope.end" : 286,
+                "key.parsed_scope.start" : 286,
                 "key.typename" : "CGFloat",
                 "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
                 "key.usr" : "s:10ListableUI14GridListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF15lastContentMaxYL_12CoreGraphics7CGFloatVvp"
@@ -40041,53 +41121,53 @@
           {
             "key.attribute" : "source.decl.attribute.fileprivate",
             "key.length" : 11,
-            "key.offset" : 13163
+            "key.offset" : 14766
           }
         ],
         "key.bodylength" : 1011,
-        "key.bodyoffset" : 13217,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+        "key.bodyoffset" : 14820,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> GridAppearance<\/ref.struct>.Sizing<\/ref.struct>.ItemSize<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1054,
         "key.name" : "GridAppearance.Sizing.ItemSize",
         "key.namelength" : 30,
-        "key.nameoffset" : 13185,
-        "key.offset" : 13175,
+        "key.nameoffset" : 14788,
+        "key.offset" : 14778,
         "key.parsed_declaration" : "fileprivate extension GridAppearance.Sizing.ItemSize",
-        "key.parsed_scope.end" : 444,
-        "key.parsed_scope.start" : 409,
+        "key.parsed_scope.end" : 514,
+        "key.parsed_scope.start" : 479,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
             "key.annotated_decl" : "struct Grouped<Value><\/Declaration>",
             "key.bodylength" : 107,
-            "key.bodyoffset" : 13254,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.bodyoffset" : 14857,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Grouped<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 135,
             "key.name" : "Grouped",
             "key.namelength" : 7,
-            "key.nameoffset" : 13234,
-            "key.offset" : 13227,
+            "key.nameoffset" : 14837,
+            "key.offset" : 14830,
             "key.parsed_declaration" : "struct Grouped",
-            "key.parsed_scope.end" : 416,
-            "key.parsed_scope.start" : 411,
+            "key.parsed_scope.end" : 486,
+            "key.parsed_scope.start" : 481,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Value<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 5,
                 "key.name" : "Value",
                 "key.namelength" : 5,
-                "key.nameoffset" : 13242,
-                "key.offset" : 13242,
+                "key.nameoffset" : 14845,
+                "key.offset" : 14845,
                 "key.parsed_declaration" : "struct Groupedvar itemsInRowSpacing: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> itemsInRowSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 31,
                 "key.name" : "itemsInRowSpacing",
                 "key.namelength" : 17,
-                "key.nameoffset" : 13267,
-                "key.offset" : 13263,
+                "key.nameoffset" : 14870,
+                "key.offset" : 14866,
                 "key.parsed_declaration" : "var itemsInRowSpacing : CGFloat",
-                "key.parsed_scope.end" : 413,
-                "key.parsed_scope.start" : 413,
+                "key.parsed_scope.end" : 483,
+                "key.parsed_scope.start" : 483,
                 "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
                 "key.typename" : "CGFloat",
                 "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
@@ -40114,17 +41194,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var itemSize: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> itemSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
                 "key.name" : "itemSize",
                 "key.namelength" : 8,
-                "key.nameoffset" : 13307,
-                "key.offset" : 13303,
+                "key.nameoffset" : 14910,
+                "key.offset" : 14906,
                 "key.parsed_declaration" : "var itemSize : CGSize",
-                "key.parsed_scope.end" : 414,
-                "key.parsed_scope.start" : 414,
+                "key.parsed_scope.end" : 484,
+                "key.parsed_scope.start" : 484,
                 "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
                 "key.typename" : "CGSize",
                 "key.typeusr" : "$sSo6CGSizeVD",
@@ -40133,17 +41213,17 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var grouped: [[Value<\/Type>]]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> grouped<\/decl.name>: [[Value<\/ref.generic_type_param>]]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 23,
                 "key.name" : "grouped",
                 "key.namelength" : 7,
-                "key.nameoffset" : 13337,
-                "key.offset" : 13333,
+                "key.nameoffset" : 14940,
+                "key.offset" : 14936,
                 "key.parsed_declaration" : "var grouped : [[Value]]",
-                "key.parsed_scope.end" : 415,
-                "key.parsed_scope.start" : 415,
+                "key.parsed_scope.end" : 485,
+                "key.parsed_scope.start" : 485,
                 "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
                 "key.typename" : "[[Value]]",
                 "key.typeusr" : "$sSaySayxGGD",
@@ -40158,32 +41238,32 @@
             "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
             "key.annotated_decl" : "func grouped<Value>(within width: CGFloat<\/Type>, values: [Value<\/Type>]) -> Grouped<\/Type><Value<\/Type>><\/Declaration>",
             "key.bodylength" : 447,
-            "key.bodyoffset" : 13457,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.bodyoffset" : 15060,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> grouped<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(within<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, values<\/decl.var.parameter.argument_label>: [Value<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> Grouped<\/ref.struct><Value<\/ref.generic_type_param>><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 533,
             "key.name" : "grouped(within:values:)",
             "key.namelength" : 56,
-            "key.nameoffset" : 13377,
-            "key.offset" : 13372,
+            "key.nameoffset" : 14980,
+            "key.offset" : 14975,
             "key.parsed_declaration" : "func grouped(within width : CGFloat, values : [Value]) -> Grouped",
-            "key.parsed_scope.end" : 430,
-            "key.parsed_scope.start" : 418,
+            "key.parsed_scope.end" : 500,
+            "key.parsed_scope.start" : 488,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Value<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 5,
                 "key.name" : "Value",
                 "key.namelength" : 5,
-                "key.nameoffset" : 13385,
-                "key.offset" : 13385,
+                "key.nameoffset" : 14988,
+                "key.offset" : 14988,
                 "key.parsed_declaration" : "func groupedprivate<\/syntaxtype.keyword> func<\/syntaxtype.keyword> group<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(values<\/decl.var.parameter.argument_label>: [Value<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>, into<\/decl.var.parameter.argument_label> itemsPerRow<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [[Value<\/ref.generic_type_param>]]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 304,
             "key.name" : "group(values:into:)",
             "key.namelength" : 54,
-            "key.nameoffset" : 13928,
-            "key.offset" : 13923,
+            "key.nameoffset" : 15531,
+            "key.offset" : 15526,
             "key.parsed_declaration" : "private func group(values : [Value], into itemsPerRow : Int) -> [[Value]]",
-            "key.parsed_scope.end" : 443,
-            "key.parsed_scope.start" : 432,
+            "key.parsed_scope.end" : 513,
+            "key.parsed_scope.start" : 502,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Value<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 5,
                 "key.name" : "Value",
                 "key.namelength" : 5,
-                "key.nameoffset" : 13934,
-                "key.offset" : 13934,
+                "key.nameoffset" : 15537,
+                "key.offset" : 15537,
                 "key.parsed_declaration" : "private func groupvar values: [Value]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> values<\/decl.name>: [Value]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 19,
                 "key.name" : "values",
                 "key.namelength" : 6,
-                "key.nameoffset" : 14014,
-                "key.offset" : 14010,
+                "key.nameoffset" : 15617,
+                "key.offset" : 15613,
                 "key.parsed_declaration" : "var values = values",
-                "key.parsed_scope.end" : 434,
-                "key.parsed_scope.start" : 434,
+                "key.parsed_scope.end" : 504,
+                "key.parsed_scope.start" : 504,
                 "key.typename" : "[Value]",
                 "key.typeusr" : "$sSayxGD",
                 "key.usr" : "s:10ListableUI14GridAppearanceV6SizingV8ItemSizeO5group33_51201F65DFF98DBE3D4D85DC498C38E0LL6values4intoSaySayxGGAL_SitlFAJL0_ALvp"
               },
               {
                 "key.annotated_decl" : "var grouped: [[Value<\/Type>]]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> grouped<\/decl.name>: [[Value<\/ref.generic_type_param>]]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 28,
                 "key.name" : "grouped",
                 "key.namelength" : 7,
-                "key.nameoffset" : 14051,
-                "key.offset" : 14047,
+                "key.nameoffset" : 15654,
+                "key.offset" : 15650,
                 "key.parsed_declaration" : "var grouped : [[Value]] = []",
-                "key.parsed_scope.end" : 436,
-                "key.parsed_scope.start" : 436,
+                "key.parsed_scope.end" : 506,
+                "key.parsed_scope.start" : 506,
                 "key.related_decls" : [
                   {
                     "key.annotated_decl" : "grouped(within:values:)<\/RelatedName>"
@@ -40290,11 +41370,11 @@
           {
             "key.attribute" : "source.decl.attribute.fileprivate",
             "key.length" : 11,
-            "key.offset" : 14232
+            "key.offset" : 15835
           }
         ],
         "key.bodylength" : 250,
-        "key.bodyoffset" : 14261,
+        "key.bodyoffset" : 15864,
         "key.doc.declaration" : "@frozen struct Array",
         "key.doc.discussion" : [
           {
@@ -40438,11 +41518,11 @@
         "key.modulename" : "Swift",
         "key.name" : "Array",
         "key.namelength" : 5,
-        "key.nameoffset" : 14254,
-        "key.offset" : 14244,
+        "key.nameoffset" : 15857,
+        "key.offset" : 15847,
         "key.parsed_declaration" : "fileprivate extension Array",
-        "key.parsed_scope.end" : 458,
-        "key.parsed_scope.start" : 447,
+        "key.parsed_scope.end" : 528,
+        "key.parsed_scope.start" : 517,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
@@ -40451,56 +41531,56 @@
               {
                 "key.attribute" : "source.decl.attribute.mutating",
                 "key.length" : 8,
-                "key.offset" : 14266
+                "key.offset" : 15869
               }
             ],
             "key.bodylength" : 182,
-            "key.bodyoffset" : 14327,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.bodyoffset" : 15930,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> safeDropFirst<\/decl.name>(_<\/decl.var.parameter.argument_label> count<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Element<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.groupname" : "Collection\/Array",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 235,
             "key.name" : "safeDropFirst(_:)",
             "key.namelength" : 28,
-            "key.nameoffset" : 14280,
-            "key.offset" : 14275,
+            "key.nameoffset" : 15883,
+            "key.offset" : 15878,
             "key.parsed_declaration" : "mutating func safeDropFirst(_ count : Int) -> [Element]",
-            "key.parsed_scope.end" : 457,
-            "key.parsed_scope.start" : 449,
+            "key.parsed_scope.end" : 527,
+            "key.parsed_scope.start" : 519,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let safeCount: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 44,
                 "key.name" : "safeCount",
                 "key.namelength" : 9,
-                "key.nameoffset" : 14340,
-                "key.offset" : 14336,
+                "key.nameoffset" : 15943,
+                "key.offset" : 15939,
                 "key.parsed_declaration" : "let safeCount = Swift.min(self.count, count)",
-                "key.parsed_scope.end" : 451,
-                "key.parsed_scope.start" : 451,
+                "key.parsed_scope.end" : 521,
+                "key.parsed_scope.start" : 521,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_51201F65DFF98DBE3D4D85DC498C38E0LLySayxGSiF0C5CountL_Sivp"
               },
               {
                 "key.annotated_decl" : "let values: ArraySlice<\/Type><Element><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> values<\/decl.name>: ArraySlice<\/ref.struct><Element><\/decl.var.type><\/decl.var.local>",
                 "key.groupname" : "Collection\/Array",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 32,
                 "key.name" : "values",
                 "key.namelength" : 6,
-                "key.nameoffset" : 14393,
-                "key.offset" : 14389,
+                "key.nameoffset" : 15996,
+                "key.offset" : 15992,
                 "key.parsed_declaration" : "let values = self[0..",
                 "key.typeusr" : "$ss10ArraySliceVyxGD",
                 "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_51201F65DFF98DBE3D4D85DC498C38E0LLySayxGSiF6valuesL_s10ArraySliceVyxGvp"
@@ -40522,36 +41602,36 @@
           {
             "key.attribute" : "source.decl.attribute.fileprivate",
             "key.length" : 11,
-            "key.offset" : 14515
+            "key.offset" : 16118
           }
         ],
         "key.bodylength" : 18,
-        "key.bodyoffset" : 14598,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+        "key.bodyoffset" : 16201,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
         "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performLayout<\/decl.name><Input<\/decl.generic_type_param.name><\/decl.generic_type_param>>(for<\/decl.var.parameter.argument_label> input<\/decl.var.parameter.name>: Input<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Input<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.free>",
         "key.kind" : "source.lang.swift.decl.function.free",
         "key.length" : 90,
         "key.name" : "performLayout(for:_:)",
         "key.namelength" : 64,
-        "key.nameoffset" : 14532,
-        "key.offset" : 14527,
+        "key.nameoffset" : 16135,
+        "key.offset" : 16130,
         "key.parsed_declaration" : "fileprivate func performLayout(for input : Input, _ block : (Input) -> ())",
-        "key.parsed_scope.end" : 464,
-        "key.parsed_scope.start" : 461,
+        "key.parsed_scope.end" : 534,
+        "key.parsed_scope.start" : 531,
         "key.substructure" : [
           {
             "key.annotated_decl" : "Input<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Grid\/GridListLayout.swift",
             "key.fully_annotated_decl" : "Input<\/decl.generic_type_param.name><\/decl.generic_type_param>",
             "key.kind" : "source.lang.swift.decl.generic_type_param",
             "key.length" : 5,
             "key.name" : "Input",
             "key.namelength" : 5,
-            "key.nameoffset" : 14546,
-            "key.offset" : 14546,
+            "key.nameoffset" : 16149,
+            "key.offset" : 16149,
             "key.parsed_declaration" : "fileprivate func performLayoutLayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 42,
         "key.doc.name" : "LayoutDescription",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.doclength" : 1014,
+        "key.docoffset" : 115,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 195,
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 486,
         "key.name" : "LayoutDescription",
         "key.namelength" : 17,
-        "key.nameoffset" : 133,
-        "key.offset" : 123,
-        "key.parsed_declaration" : "public extension LayoutDescription",
-        "key.parsed_scope.end" : 17,
-        "key.parsed_scope.start" : 11,
-        "key.substructure" : [
+        "key.nameoffset" : 1143,
+        "key.offset" : 1136,
+        "key.parsed_declaration" : "public struct LayoutDescription",
+        "key.parsed_scope.end" : 53,
+        "key.parsed_scope.start" : 42,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let configuration: AnyLayoutDescriptionConfiguration<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> configuration<\/decl.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 53,
+            "key.name" : "configuration",
+            "key.namelength" : 13,
+            "key.nameoffset" : 1171,
+            "key.offset" : 1167,
+            "key.parsed_declaration" : "let configuration : AnyLayoutDescriptionConfiguration",
+            "key.parsed_scope.end" : 44,
+            "key.parsed_scope.start" : 44,
+            "key.typename" : "AnyLayoutDescriptionConfiguration",
+            "key.typeusr" : "$s10ListableUI33AnyLayoutDescriptionConfiguration_pD",
+            "key.usr" : "s:10ListableUI17LayoutDescriptionV13configurationAA03AnycD13Configuration_pvp"
+          },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "static func list(_ configure: @escaping (inout ListAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>",
-            "key.bodylength" : 63,
-            "key.bodyoffset" : 252,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> list<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> ListAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
-            "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 159,
-            "key.name" : "list(_:)",
-            "key.namelength" : 69,
-            "key.nameoffset" : 169,
-            "key.offset" : 157,
-            "key.parsed_declaration" : "static func list(_ configure : @escaping (inout ListAppearance) -> () = { _ in }) -> Self",
-            "key.parsed_scope.end" : 16,
-            "key.parsed_scope.start" : 13,
+            "key.annotated_decl" : "public init<LayoutType>(layoutType: LayoutType<\/Type>.Type, appearance configure: @escaping (inout LayoutType<\/Type>.LayoutAppearance<\/Type>) -> () = { _ in }) where LayoutType : ListLayout<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 1350
+              }
+            ],
+            "key.bodylength" : 94,
+            "key.bodyoffset" : 1525,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Creates a new layout description for the provided layout type, with the provided optional layout configuration.",
+            "key.doc.declaration" : "public init(layoutType: LayoutType.Type, appearance configure: @escaping (inout LayoutType.LayoutAppearance) -> () = { _ in }) where LayoutType : ListableUI.ListLayout",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.doc.full_as_xml" : "init(layoutType:appearance:)<\/Name>s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzctcAA04ListC0Rzlufc<\/USR>public init<LayoutType>(layoutType: LayoutType.Type, appearance configure: @escaping (inout LayoutType.LayoutAppearance) -> () = { _ in }) where LayoutType : ListableUI.ListLayout<\/Declaration>Creates a new layout description for the provided layout type, with the provided optional layout configuration.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.line" : 47,
+            "key.doc.name" : "init(layoutType:appearance:)",
+            "key.doc.type" : "Function",
+            "key.doclength" : 116,
+            "key.docoffset" : 1230,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><LayoutType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(layoutType<\/decl.var.parameter.argument_label>: LayoutType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> LayoutType<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> LayoutType : ListLayout<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 263,
+            "key.name" : "init(layoutType:appearance:)",
+            "key.namelength" : 166,
+            "key.nameoffset" : 1357,
+            "key.offset" : 1357,
+            "key.parsed_declaration" : "public init(\n    layoutType : LayoutType.Type,\n    appearance configure : @escaping (inout LayoutType.LayoutAppearance) -> () = { _ in }\n)",
+            "key.parsed_scope.end" : 52,
+            "key.parsed_scope.start" : 47,
             "key.substructure" : [
-
+              {
+                "key.annotated_decl" : "LayoutType : ListLayout<\/Type><\/Declaration>",
+                "key.elements" : [
+                  {
+                    "key.kind" : "source.lang.swift.structure.elem.typeref",
+                    "key.length" : 10,
+                    "key.offset" : 1373
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                "key.fully_annotated_decl" : "LayoutType<\/decl.generic_type_param.name> : ListLayout<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
+                "key.inheritedtypes" : [
+                  {
+                    "key.name" : "ListLayout"
+                  }
+                ],
+                "key.kind" : "source.lang.swift.decl.generic_type_param",
+                "key.length" : 21,
+                "key.name" : "LayoutType",
+                "key.namelength" : 10,
+                "key.nameoffset" : 1362,
+                "key.offset" : 1362,
+                "key.parsed_declaration" : "public init (@escaping (inout ListAppearance) -> ()) -> LayoutDescription",
-            "key.typeusr" : "$sy10ListableUI17LayoutDescriptionVyAA14ListAppearanceVzccD",
-            "key.usr" : "s:10ListableUI17LayoutDescriptionV4listyACyAA14ListAppearanceVzcFZ"
+            "key.typename" : " (LayoutDescription.Type) -> (LayoutType.Type, @escaping (inout LayoutType.LayoutAppearance) -> ()) -> LayoutDescription",
+            "key.typeusr" : "$s10layoutType10appearance10ListableUI17LayoutDescriptionVxm_y0F10AppearanceQzzctcAC04ListF0RzluD",
+            "key.usr" : "s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzctcAA04ListC0Rzlufc"
           }
         ],
         "key.typename" : "LayoutDescription.Type",
@@ -40650,1483 +41796,925 @@
       },
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct ListAppearance : ListLayoutAppearance<\/Type><\/Declaration>",
+        "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 9876
-          }
-        ],
-        "key.bodylength" : 704,
-        "key.bodyoffset" : 9929,
-        "key.doc.column" : 15,
-        "key.doc.comment" : "\n`ListAppearance` defines the appearance and layout attribute for list layouts within a Listable list.\n\nThe below diagram shows where each of the properties on the `ListAppearance.Layout` values are\napplied when laying out the list.\n\nNote\n----\nDo not edit this ASCII diagram directly.\nEdit the `ListAppearance.monopic` file in this directory using Monodraw.\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                          padding.top                            │\n│   ┌─────────────────────────────────────────────────────────┐   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│   ││                      List Header                      ││   │\n│   ││                                                       ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                                                         │   │\n│   │               headerToFirstSectionSpacing               │   │\n│   │                                                         │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│   ││                    Section Header                     ││   │\n│   ││                                                       ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │               sectionHeaderBottomSpacing                │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                       itemSpacing                       │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │               itemToSectionFooterSpacing                │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│ p ││                    Section Footer                     ││ p │\n│ a ││                                                       ││ a │\n│ d │└───────────────────────────────────────────────────────┘│ d │\n│ d │                                                         │ d │\n│ i │               interSectionSpacingWithFooter             │ i │\n│ n │                                                         │ n │\n│ g │┌───────────────────────────────────────────────────────┐│ g │\n│ . ││                                                       ││ . │\n│ l ││                    Section Header                     ││ r │\n│ e ││                                                       ││ i │\n│ f │└───────────────────────────────────────────────────────┘│ g │\n│ t │               sectionHeaderBottomSpacing                │ h │\n│   │┌───────────────────────────────────────────────────────┐│ t │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                       itemSpacing                       │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                                                         │   │\n│   │              interSectionSpacingWithNoFooter            │   │\n│   │                                                         │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│   ││                    Section Header                     ││   │\n│   ││                                                       ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │               sectionHeaderBottomSpacing                │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                       itemSpacing                       │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                                                         │   │\n│   │               lastSectionToFooterSpacing                │   │\n│   │                                                         │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│   ││                      List Footer                      ││   │\n│   ││                                                       ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   └─────────────────────────────────────────────────────────┘   │\n│                         padding.bottom                          │\n└─────────────────────────────────────────────────────────────────┘\n```",
-        "key.doc.declaration" : "public struct ListAppearance : ListLayoutAppearance",
-        "key.doc.discussion" : [
-          {
-            "Para" : "The below diagram shows where each of the properties on the `ListAppearance.Layout` values are applied when laying out the list."
-          },
-          {
-            "Para" : "Do not edit this ASCII diagram directly. Edit the `ListAppearance.monopic` file in this directory using Monodraw."
-          },
-          {
-            "CodeListing" : ""
-          }
-        ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-        "key.doc.full_as_xml" : "ListAppearance<\/Name>s:10ListableUI14ListAppearanceV<\/USR>public struct ListAppearance : ListLayoutAppearance<\/Declaration>ListAppearance<\/codeVoice> defines the appearance and layout attribute for list layouts within a Listable list.<\/Para><\/Abstract>The below diagram shows where each of the properties on the ListAppearance.Layout<\/codeVoice> values are applied when laying out the list.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not edit this ASCII diagram directly. Edit the ListAppearance.monopic<\/codeVoice> file in this directory using Monodraw.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 105,
-        "key.doc.name" : "ListAppearance",
-        "key.doc.type" : "Class",
-        "key.doclength" : 9555,
-        "key.docoffset" : 321,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 20,
-            "key.offset" : 9907
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>",
-        "key.inheritedtypes" : [
-          {
-            "key.name" : "ListLayoutAppearance"
+            "key.offset" : 1625
           }
         ],
-        "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 751,
-        "key.name" : "ListAppearance",
-        "key.namelength" : 14,
-        "key.nameoffset" : 9890,
-        "key.offset" : 9883,
-        "key.parsed_declaration" : "public struct ListAppearance : ListLayoutAppearance",
-        "key.parsed_scope.end" : 133,
-        "key.parsed_scope.start" : 105,
+        "key.bodylength" : 367,
+        "key.bodyoffset" : 1654,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 390,
+        "key.name" : "ListLayout",
+        "key.namelength" : 10,
+        "key.nameoffset" : 1642,
+        "key.offset" : 1632,
+        "key.parsed_declaration" : "public extension ListLayout",
+        "key.parsed_scope.end" : 68,
+        "key.parsed_scope.start" : 56,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var direction: LayoutDirection<\/Type> { get }<\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 9934
-              }
-            ],
-            "key.bodylength" : 23,
-            "key.bodyoffset" : 9973,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 56,
-            "key.name" : "direction",
-            "key.namelength" : 9,
-            "key.nameoffset" : 9945,
-            "key.offset" : 9941,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp"
-              }
-            ],
-            "key.parsed_declaration" : "public var direction: LayoutDirection",
-            "key.parsed_scope.end" : 109,
-            "key.parsed_scope.start" : 107,
-            "key.typename" : "LayoutDirection",
-            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
-            "key.usr" : "s:10ListableUI14ListAppearanceV9directionAA15LayoutDirectionOvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var stickySectionHeaders: Bool<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 10007
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 31,
-            "key.name" : "stickySectionHeaders",
-            "key.namelength" : 20,
-            "key.nameoffset" : 10018,
-            "key.offset" : 10014,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp"
-              }
-            ],
-            "key.parsed_declaration" : "public var stickySectionHeaders : Bool",
-            "key.parsed_scope.end" : 111,
-            "key.parsed_scope.start" : 111,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI14ListAppearanceV20stickySectionHeadersSbvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var sizing: Sizing<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 10114
-              }
-            ],
-            "key.doc.column" : 16,
-            "key.doc.comment" : "Default sizing attributes for content in the list.",
-            "key.doc.declaration" : "public var sizing: Sizing",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.doc.full_as_xml" : "sizing<\/Name>s:10ListableUI14ListAppearanceV6sizingAC6SizingVvp<\/USR>public var sizing: Sizing<\/Declaration>Default sizing attributes for content in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 114,
-            "key.doc.name" : "sizing",
-            "key.doc.type" : "Other",
-            "key.doclength" : 55,
-            "key.docoffset" : 10055,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 19,
-            "key.name" : "sizing",
-            "key.namelength" : 6,
-            "key.nameoffset" : 10125,
-            "key.offset" : 10121,
-            "key.parsed_declaration" : "public var sizing : Sizing",
-            "key.parsed_scope.end" : 114,
-            "key.parsed_scope.start" : 114,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "ListAppearance.Sizing",
-            "key.typeusr" : "$s10ListableUI14ListAppearanceV6SizingVD",
-            "key.usr" : "s:10ListableUI14ListAppearanceV6sizingAC6SizingVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var layout: Layout<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 10201
-              }
-            ],
-            "key.doc.column" : 16,
-            "key.doc.comment" : "Layout attributes for content in the list.",
-            "key.doc.declaration" : "public var layout: Layout",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI14ListAppearanceV6layoutAC6LayoutVvp<\/USR>public var layout: Layout<\/Declaration>Layout attributes for content in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 117,
-            "key.doc.name" : "layout",
-            "key.doc.type" : "Other",
-            "key.doclength" : 47,
-            "key.docoffset" : 10150,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: Layout<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 19,
-            "key.name" : "layout",
-            "key.namelength" : 6,
-            "key.nameoffset" : 10212,
-            "key.offset" : 10208,
-            "key.parsed_declaration" : "public var layout : Layout",
-            "key.parsed_scope.end" : 117,
-            "key.parsed_scope.start" : 117,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "ListAppearance.Layout",
-            "key.typeusr" : "$s10ListableUI14ListAppearanceV6LayoutVD",
-            "key.usr" : "s:10ListableUI14ListAppearanceV6layoutAC6LayoutVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public static var `default`: ListAppearance<\/Type> { get }<\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 10237
-              }
-            ],
-            "key.bodylength" : 32,
-            "key.bodyoffset" : 10282,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: ListAppearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
-            "key.kind" : "source.lang.swift.decl.var.static",
-            "key.length" : 71,
-            "key.name" : "default",
-            "key.namelength" : 7,
-            "key.nameoffset" : 10255,
-            "key.offset" : 10244,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ"
-              }
-            ],
-            "key.parsed_declaration" : "public static var `default`: ListAppearance",
-            "key.parsed_scope.end" : 121,
-            "key.parsed_scope.start" : 119,
-            "key.typename" : "ListAppearance",
-            "key.typeusr" : "$s10ListableUI14ListAppearanceVD",
-            "key.usr" : "s:10ListableUI14ListAppearanceV7defaultACvpZ"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(stickySectionHeaders: Bool<\/Type> = true, sizing: Sizing<\/Type> = Sizing(), layout: Layout<\/Type> = Layout())<\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 10376
-              }
-            ],
-            "key.bodylength" : 120,
-            "key.bodyoffset" : 10511,
-            "key.doc.column" : 12,
-            "key.doc.comment" : "Creates a new `ListAppearance` object.",
-            "key.doc.declaration" : "public init(stickySectionHeaders: Bool = true, sizing: Sizing = Sizing(), layout: Layout = Layout())",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.doc.full_as_xml" : "init(stickySectionHeaders:sizing:layout:)<\/Name>s:10ListableUI14ListAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc<\/USR>public init(stickySectionHeaders: Bool = true, sizing: Sizing = Sizing(), layout: Layout = Layout())<\/Declaration>Creates a new ListAppearance<\/codeVoice> object.<\/Para><\/Abstract><\/CommentParts><\/Function>",
-            "key.doc.line" : 124,
-            "key.doc.name" : "init(stickySectionHeaders:sizing:layout:)",
+            "key.annotated_decl" : "static func describe(appearance: @escaping (inout Self<\/Type>.LayoutAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>",
+            "key.bodylength" : 119,
+            "key.bodyoffset" : 1900,
+            "key.doc.column" : 17,
+            "key.doc.comment" : "Creates a new layout description for a list layout, with the provided optional layout configuration.",
+            "key.doc.declaration" : "static func describe(appearance: @escaping (inout Self.LayoutAppearance) -> () = { _ in }) -> LayoutDescription",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.doc.full_as_xml" : "describe(appearance:)<\/Name>s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzc_tFZ<\/USR>static func describe(appearance: @escaping (inout Self.LayoutAppearance) -> () = { _ in }) -> LayoutDescription<\/Declaration>Creates a new layout description for a list layout, with the provided optional layout configuration.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.line" : 59,
+            "key.doc.name" : "describe(appearance:)",
             "key.doc.type" : "Function",
-            "key.doclength" : 43,
-            "key.docoffset" : 10329,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(stickySectionHeaders<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.struct><\/decl.var.parameter.type> = Sizing()<\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: Layout<\/ref.struct><\/decl.var.parameter.type> = Layout()<\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 249,
-            "key.name" : "init(stickySectionHeaders:sizing:layout:)",
-            "key.namelength" : 126,
-            "key.nameoffset" : 10383,
-            "key.offset" : 10383,
-            "key.parsed_declaration" : "public init(\n    stickySectionHeaders : Bool = true,\n    sizing : Sizing = Sizing(),\n    layout : Layout = Layout()\n)",
-            "key.parsed_scope.end" : 132,
-            "key.parsed_scope.start" : 124,
+            "key.doclength" : 105,
+            "key.docoffset" : 1659,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> describe<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
+            "key.kind" : "source.lang.swift.decl.function.method.static",
+            "key.length" : 252,
+            "key.name" : "describe(appearance:)",
+            "key.namelength" : 93,
+            "key.nameoffset" : 1780,
+            "key.offset" : 1768,
+            "key.parsed_declaration" : "static func describe(\n    appearance : @escaping (inout Self.LayoutAppearance) -> () = { _ in }\n) -> LayoutDescription",
+            "key.parsed_scope.end" : 67,
+            "key.parsed_scope.start" : 59,
             "key.substructure" : [
 
             ],
-            "key.typename" : "(ListAppearance.Type) -> (Bool, ListAppearance.Sizing, ListAppearance.Layout) -> ListAppearance",
-            "key.typeusr" : "$s20stickySectionHeaders6sizing6layout10ListableUI14ListAppearanceVSb_AF6SizingVAF6LayoutVtcD",
-            "key.usr" : "s:10ListableUI14ListAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc"
+            "key.typename" : " (Self.Type) -> (@escaping (inout Self.LayoutAppearance) -> ()) -> LayoutDescription",
+            "key.typeusr" : "$s10appearance10ListableUI17LayoutDescriptionVy0D10AppearanceQzzc_tcD",
+            "key.usr" : "s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzc_tFZ"
           }
         ],
-        "key.typename" : "ListAppearance.Type",
-        "key.typeusr" : "$s10ListableUI14ListAppearanceVmD",
-        "key.usr" : "s:10ListableUI14ListAppearanceV"
+        "key.typename" : "ListLayout.Protocol",
+        "key.typeusr" : "$s10ListableUI10ListLayout_pmD",
+        "key.usr" : "s:10ListableUI10ListLayoutP"
       },
       {
-        "key.annotated_decl" : "public struct ListAppearance : ListLayoutAppearance<\/Type><\/Declaration>",
-        "key.bodylength" : 5406,
-        "key.bodyoffset" : 10663,
+        "key.annotated_decl" : "public struct LayoutDescription<\/Declaration>",
+        "key.bodylength" : 2080,
+        "key.bodyoffset" : 2054,
         "key.doc.column" : 15,
-        "key.doc.declaration" : "public struct ListAppearance : ListLayoutAppearance",
+        "key.doc.declaration" : "public struct LayoutDescription",
         "key.doc.discussion" : [
           {
-            "Para" : "The below diagram shows where each of the properties on the `ListAppearance.Layout` values are applied when laying out the list."
+            "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type."
+          },
+          {
+            "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:"
+          },
+          {
+            "CodeListing" : ""
           },
           {
-            "Para" : "Do not edit this ASCII diagram directly. Edit the `ListAppearance.monopic` file in this directory using Monodraw."
+            "Para" : "Or a layout for your own custom layout type would look somewhat like this:"
           },
           {
             "CodeListing" : ""
+          },
+          {
+            "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-        "key.doc.full_as_xml" : "ListAppearance<\/Name>s:10ListableUI14ListAppearanceV<\/USR>public struct ListAppearance : ListLayoutAppearance<\/Declaration>ListAppearance<\/codeVoice> defines the appearance and layout attribute for list layouts within a Listable list.<\/Para><\/Abstract>The below diagram shows where each of the properties on the ListAppearance.Layout<\/codeVoice> values are applied when laying out the list.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not edit this ASCII diagram directly. Edit the ListAppearance.monopic<\/codeVoice> file in this directory using Monodraw.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 105,
-        "key.doc.name" : "ListAppearance",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 42,
+        "key.doc.name" : "LayoutDescription",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 5433,
-        "key.name" : "ListAppearance",
-        "key.namelength" : 14,
-        "key.nameoffset" : 10647,
-        "key.offset" : 10637,
-        "key.parsed_declaration" : "extension ListAppearance",
-        "key.parsed_scope.end" : 267,
-        "key.parsed_scope.start" : 136,
+        "key.length" : 2110,
+        "key.name" : "LayoutDescription",
+        "key.namelength" : 17,
+        "key.nameoffset" : 2035,
+        "key.offset" : 2025,
+        "key.parsed_declaration" : "extension LayoutDescription",
+        "key.parsed_scope.end" : 137,
+        "key.parsed_scope.start" : 71,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public struct Sizing : Equatable<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 10705
-              }
-            ],
-            "key.bodylength" : 1970,
-            "key.bodyoffset" : 10743,
-            "key.doc.column" : 19,
-            "key.doc.comment" : "Sizing options for the list.",
-            "key.doc.declaration" : "public struct Sizing : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI14ListAppearanceV6SizingV<\/USR>public struct Sizing : Equatable<\/Declaration>Sizing options for the list.<\/Para><\/Abstract><\/CommentParts><\/Class>",
-            "key.doc.line" : 139,
-            "key.doc.name" : "Sizing",
-            "key.doc.type" : "Class",
-            "key.doclength" : 33,
-            "key.docoffset" : 10668,
+            "key.annotated_decl" : "struct Configuration<LayoutType> : AnyLayoutDescriptionConfiguration<\/Type> where LayoutType : ListLayout<\/Type><\/Declaration>",
+            "key.bodylength" : 1988,
+            "key.bodyoffset" : 2144,
             "key.elements" : [
               {
                 "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 9,
-                "key.offset" : 10728
+                "key.length" : 33,
+                "key.offset" : 2105
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Sizing<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Configuration<\/decl.name><LayoutType<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyLayoutDescriptionConfiguration<\/ref.protocol> where<\/syntaxtype.keyword> LayoutType : ListLayout<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
             "key.inheritedtypes" : [
               {
-                "key.name" : "Equatable"
+                "key.name" : "AnyLayoutDescriptionConfiguration"
               }
             ],
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 2002,
-            "key.name" : "Sizing",
-            "key.namelength" : 6,
-            "key.nameoffset" : 10719,
-            "key.offset" : 10712,
-            "key.parsed_declaration" : "public struct Sizing : Equatable",
-            "key.parsed_scope.end" : 186,
-            "key.parsed_scope.start" : 139,
+            "key.length" : 2074,
+            "key.name" : "Configuration",
+            "key.namelength" : 13,
+            "key.nameoffset" : 2066,
+            "key.offset" : 2059,
+            "key.parsed_declaration" : "struct Configuration : AnyLayoutDescriptionConfiguration",
+            "key.parsed_scope.end" : 136,
+            "key.parsed_scope.start" : 73,
             "key.substructure" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var itemHeight: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
+                "key.annotated_decl" : "LayoutType : ListLayout<\/Type><\/Declaration>",
+                "key.elements" : [
                   {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 10804
+                    "key.kind" : "source.lang.swift.structure.elem.typeref",
+                    "key.length" : 10,
+                    "key.offset" : 2091
                   }
                 ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The default height for items in a list.",
-                "key.doc.declaration" : "public var itemHeight: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "itemHeight<\/Name>s:10ListableUI14ListAppearanceV6SizingV10itemHeight12CoreGraphics7CGFloatVvp<\/USR>public var itemHeight: CGFloat<\/Declaration>The default height for items in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 142,
-                "key.doc.name" : "itemHeight",
-                "key.doc.type" : "Other",
-                "key.doclength" : 44,
-                "key.docoffset" : 10752,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                "key.fully_annotated_decl" : "LayoutType<\/decl.generic_type_param.name> : ListLayout<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
+                "key.inheritedtypes" : [
+                  {
+                    "key.name" : "ListLayout"
+                  }
+                ],
+                "key.kind" : "source.lang.swift.decl.generic_type_param",
+                "key.length" : 21,
+                "key.name" : "LayoutType",
+                "key.namelength" : 10,
+                "key.nameoffset" : 2080,
+                "key.offset" : 2080,
+                "key.parsed_declaration" : "struct Configurationlet layoutType: LayoutType<\/Type>.Type<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layoutType<\/decl.name>: LayoutType<\/ref.generic_type_param>.Type<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 24,
-                "key.name" : "itemHeight",
+                "key.length" : 32,
+                "key.name" : "layoutType",
                 "key.namelength" : 10,
-                "key.nameoffset" : 10815,
-                "key.offset" : 10811,
-                "key.parsed_declaration" : "public var itemHeight : CGFloat",
-                "key.parsed_scope.end" : 142,
-                "key.parsed_scope.start" : 142,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV10itemHeight12CoreGraphics7CGFloatVvp"
+                "key.nameoffset" : 2157,
+                "key.offset" : 2153,
+                "key.parsed_declaration" : "let layoutType : LayoutType.Type",
+                "key.parsed_scope.end" : 75,
+                "key.parsed_scope.start" : 75,
+                "key.typename" : "LayoutType.Type",
+                "key.typeusr" : "$sxmD",
+                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV10layoutTypexmvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let configure: (inout LayoutType<\/Type>.LayoutAppearance<\/Type>) -> ()<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> configure<\/decl.name>: (inout<\/syntaxtype.keyword> LayoutType<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 57,
+                "key.name" : "configure",
+                "key.namelength" : 9,
+                "key.nameoffset" : 2207,
+                "key.offset" : 2203,
+                "key.parsed_declaration" : "let configure : (inout LayoutType.LayoutAppearance) -> ()",
+                "key.parsed_scope.end" : 77,
+                "key.parsed_scope.start" : 77,
+                "key.typename" : "(inout LayoutType.LayoutAppearance) -> ()",
+                "key.typeusr" : "$syy16LayoutAppearance10ListableUI04ListA0PQzzcD",
+                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV9configureyy0C10AppearanceQzzcvp"
+              },
+              {
+                "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+                "key.length" : 39,
+                "key.name" : "MARK: AnyLayoutDescriptionConfiguration",
+                "key.namelength" : 0,
+                "key.nameoffset" : 0,
+                "key.offset" : 2281
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "func createEmptyLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>) -> AnyListLayout<\/Type><\/Declaration>",
+                "key.bodylength" : 345,
+                "key.bodyoffset" : 2466,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> createEmptyLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 474,
+                "key.name" : "createEmptyLayout(appearance:behavior:)",
+                "key.namelength" : 96,
+                "key.nameoffset" : 2343,
+                "key.offset" : 2338,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF"
+                  }
+                ],
+                "key.parsed_declaration" : "func createEmptyLayout(\n    appearance : Appearance,\n    behavior: Behavior\n) -> AnyListLayout",
+                "key.parsed_scope.end" : 95,
+                "key.parsed_scope.start" : 81,
+                "key.substructure" : [
+                  {
+                    "key.annotated_decl" : "var layoutAppearance: LayoutType.LayoutAppearance<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: LayoutType.LayoutAppearance<\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 58,
+                    "key.name" : "layoutAppearance",
+                    "key.namelength" : 16,
+                    "key.nameoffset" : 2483,
+                    "key.offset" : 2479,
+                    "key.parsed_declaration" : "var layoutAppearance = LayoutType.LayoutAppearance.default",
+                    "key.parsed_scope.end" : 86,
+                    "key.parsed_scope.start" : 86,
+                    "key.typename" : "LayoutType.LayoutAppearance",
+                    "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
+                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV011createEmptyC010appearance8behaviorAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVtF06layoutL0L_0cL0Qzvp"
+                  }
+                ],
+                "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior) -> AnyListLayout",
+                "key.typeusr" : "$s10appearance8behavior10ListableUI13AnyListLayout_pAC10AppearanceV_AC8BehaviorVtcD",
+                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV011createEmptyC010appearance8behaviorAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVtF"
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var sectionHeaderHeight: CGFloat<\/Type><\/Declaration>",
+                "key.annotated_decl" : "public func createPopulatedLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, delegate: CollectionViewLayoutDelegate<\/Type>) -> AnyListLayout<\/Type><\/Declaration>",
                 "key.attributes" : [
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 10915
+                    "key.offset" : 2830
                   }
                 ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The default height for section headers in a list.",
-                "key.doc.declaration" : "public var sectionHeaderHeight: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "sectionHeaderHeight<\/Name>s:10ListableUI14ListAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp<\/USR>public var sectionHeaderHeight: CGFloat<\/Declaration>The default height for section headers in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 145,
-                "key.doc.name" : "sectionHeaderHeight",
-                "key.doc.type" : "Other",
-                "key.doclength" : 54,
-                "key.docoffset" : 10853,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionHeaderHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 33,
-                "key.name" : "sectionHeaderHeight",
-                "key.namelength" : 19,
-                "key.nameoffset" : 10926,
-                "key.offset" : 10922,
-                "key.parsed_declaration" : "public var sectionHeaderHeight : CGFloat",
-                "key.parsed_scope.end" : 145,
-                "key.parsed_scope.start" : 145,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp"
+                "key.bodylength" : 395,
+                "key.bodyoffset" : 3022,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createPopulatedLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 581,
+                "key.name" : "createPopulatedLayout(appearance:behavior:delegate:)",
+                "key.namelength" : 153,
+                "key.nameoffset" : 2842,
+                "key.offset" : 2837,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior8delegateAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewD8Delegate_ptF"
+                  }
+                ],
+                "key.parsed_declaration" : "public func createPopulatedLayout(\n    appearance : Appearance,\n    behavior: Behavior,\n    delegate : CollectionViewLayoutDelegate\n) -> AnyListLayout",
+                "key.parsed_scope.end" : 112,
+                "key.parsed_scope.start" : 97,
+                "key.substructure" : [
+                  {
+                    "key.annotated_decl" : "var layoutAppearance: LayoutType.LayoutAppearance<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: LayoutType.LayoutAppearance<\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 58,
+                    "key.name" : "layoutAppearance",
+                    "key.namelength" : 16,
+                    "key.nameoffset" : 3039,
+                    "key.offset" : 3035,
+                    "key.parsed_declaration" : "var layoutAppearance = LayoutType.LayoutAppearance.default",
+                    "key.parsed_scope.end" : 103,
+                    "key.parsed_scope.start" : 103,
+                    "key.typename" : "LayoutType.LayoutAppearance",
+                    "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
+                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV015createPopulatedC010appearance8behavior8delegateAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewC8Delegate_ptF06layoutM0L_0cM0Qzvp"
+                  }
+                ],
+                "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior, CollectionViewLayoutDelegate) -> AnyListLayout",
+                "key.typeusr" : "$s10appearance8behavior8delegate10ListableUI13AnyListLayout_pAD10AppearanceV_AD8BehaviorVAD014CollectionViewH8Delegate_ptcD",
+                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV015createPopulatedC010appearance8behavior8delegateAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewC8Delegate_ptF"
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var sectionFooterHeight: CGFloat<\/Type><\/Declaration>",
+                "key.annotated_decl" : "public func shouldRebuild(layout anyLayout: AnyListLayout<\/Type>) -> Bool<\/Type><\/Declaration>",
                 "key.attributes" : [
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 11025
+                    "key.offset" : 3436
                   }
                 ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The default height for section footer in a list.",
-                "key.doc.declaration" : "public var sectionFooterHeight: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "sectionFooterHeight<\/Name>s:10ListableUI14ListAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp<\/USR>public var sectionFooterHeight: CGFloat<\/Declaration>The default height for section footer in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 147,
-                "key.doc.name" : "sectionFooterHeight",
-                "key.doc.type" : "Other",
-                "key.doclength" : 53,
-                "key.docoffset" : 10964,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionFooterHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 33,
-                "key.name" : "sectionFooterHeight",
-                "key.namelength" : 19,
-                "key.nameoffset" : 11036,
-                "key.offset" : 11032,
-                "key.parsed_declaration" : "public var sectionFooterHeight : CGFloat",
-                "key.parsed_scope.end" : 147,
-                "key.parsed_scope.start" : 147,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var listHeaderHeight: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
+                "key.bodylength" : 233,
+                "key.bodyoffset" : 3513,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> shouldRebuild<\/decl.name>(layout<\/decl.var.parameter.argument_label> anyLayout<\/decl.var.parameter.name>: AnyListLayout<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 304,
+                "key.name" : "shouldRebuild(layout:)",
+                "key.namelength" : 47,
+                "key.nameoffset" : 3448,
+                "key.offset" : 3443,
+                "key.overrides" : [
                   {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 11137
+                    "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF"
                   }
                 ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The default height for the list's header.",
-                "key.doc.declaration" : "public var listHeaderHeight: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "listHeaderHeight<\/Name>s:10ListableUI14ListAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp<\/USR>public var listHeaderHeight: CGFloat<\/Declaration>The default height for the list’s header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 150,
-                "key.doc.name" : "listHeaderHeight",
-                "key.doc.type" : "Other",
-                "key.doclength" : 46,
-                "key.docoffset" : 11083,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listHeaderHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 30,
-                "key.name" : "listHeaderHeight",
-                "key.namelength" : 16,
-                "key.nameoffset" : 11148,
-                "key.offset" : 11144,
-                "key.parsed_declaration" : "public var listHeaderHeight : CGFloat",
-                "key.parsed_scope.end" : 150,
-                "key.parsed_scope.start" : 150,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var listFooterHeight: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
+                "key.parsed_declaration" : "public func shouldRebuild(layout anyLayout : AnyListLayout) -> Bool",
+                "key.parsed_scope.end" : 124,
+                "key.parsed_scope.start" : 114,
+                "key.substructure" : [
                   {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 11237
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The default height for the list's footer.",
-                "key.doc.declaration" : "public var listFooterHeight: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "listFooterHeight<\/Name>s:10ListableUI14ListAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp<\/USR>public var listFooterHeight: CGFloat<\/Declaration>The default height for the list’s footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 152,
-                "key.doc.name" : "listFooterHeight",
-                "key.doc.type" : "Other",
-                "key.doclength" : 46,
-                "key.docoffset" : 11183,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listFooterHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 30,
-                "key.name" : "listFooterHeight",
-                "key.namelength" : 16,
-                "key.nameoffset" : 11248,
-                "key.offset" : 11244,
-                "key.parsed_declaration" : "public var listFooterHeight : CGFloat",
-                "key.parsed_scope.end" : 152,
-                "key.parsed_scope.start" : 152,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var overscrollFooterHeight: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
+                    "key.annotated_decl" : "let layout: LayoutType<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: LayoutType<\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 37,
+                    "key.name" : "layout",
+                    "key.namelength" : 6,
+                    "key.nameoffset" : 3530,
+                    "key.offset" : 3526,
+                    "key.parsed_declaration" : "let layout = anyLayout as! LayoutType",
+                    "key.parsed_scope.end" : 116,
+                    "key.parsed_scope.start" : 116,
+                    "key.typename" : "LayoutType",
+                    "key.typeusr" : "$sxD",
+                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tFAGL_xvp"
+                  },
                   {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 11348
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The default height for the list's overscroll footer.",
-                "key.doc.declaration" : "public var overscrollFooterHeight: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "overscrollFooterHeight<\/Name>s:10ListableUI14ListAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp<\/USR>public var overscrollFooterHeight: CGFloat<\/Declaration>The default height for the list’s overscroll footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 154,
-                "key.doc.name" : "overscrollFooterHeight",
-                "key.doc.type" : "Other",
-                "key.doclength" : 57,
-                "key.docoffset" : 11283,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> overscrollFooterHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 36,
-                "key.name" : "overscrollFooterHeight",
-                "key.namelength" : 22,
-                "key.nameoffset" : 11359,
-                "key.offset" : 11355,
-                "key.parsed_declaration" : "public var overscrollFooterHeight : CGFloat",
-                "key.parsed_scope.end" : 154,
-                "key.parsed_scope.start" : 154,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var itemPositionGroupingHeight: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
+                    "key.annotated_decl" : "let old: LayoutType.LayoutAppearance<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: LayoutType.LayoutAppearance<\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 33,
+                    "key.name" : "old",
+                    "key.namelength" : 3,
+                    "key.nameoffset" : 3580,
+                    "key.offset" : 3576,
+                    "key.parsed_declaration" : "let old = layout.layoutAppearance",
+                    "key.parsed_scope.end" : 117,
+                    "key.parsed_scope.start" : 117,
+                    "key.typename" : "LayoutType.LayoutAppearance",
+                    "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
+                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF3oldL_0C10AppearanceQzvp"
+                  },
                   {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 11672
+                    "key.annotated_decl" : "var new: LayoutType.LayoutAppearance<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: LayoutType.LayoutAppearance<\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 13,
+                    "key.name" : "new",
+                    "key.namelength" : 3,
+                    "key.nameoffset" : 3639,
+                    "key.offset" : 3635,
+                    "key.parsed_declaration" : "var new = old",
+                    "key.parsed_scope.end" : 119,
+                    "key.parsed_scope.start" : 119,
+                    "key.typename" : "LayoutType.LayoutAppearance",
+                    "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
+                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF3newL_0C10AppearanceQzvp"
                   }
                 ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "When providing the `ItemPosition` for items in a list, specifies the max spacing\nfor items to be considered in the same group. For example, if this value is 1, and\nitems are spaced 2pts apart, the items will be in a new group.",
-                "key.doc.declaration" : "public var itemPositionGroupingHeight: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "itemPositionGroupingHeight<\/Name>s:10ListableUI14ListAppearanceV6SizingV26itemPositionGroupingHeight12CoreGraphics7CGFloatVvp<\/USR>public var itemPositionGroupingHeight: CGFloat<\/Declaration>When providing the ItemPosition<\/codeVoice> for items in a list, specifies the max spacing for items to be considered in the same group. For example, if this value is 1, and items are spaced 2pts apart, the items will be in a new group.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 159,
-                "key.doc.name" : "itemPositionGroupingHeight",
-                "key.doc.type" : "Other",
-                "key.doclength" : 255,
-                "key.docoffset" : 11409,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemPositionGroupingHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 40,
-                "key.name" : "itemPositionGroupingHeight",
-                "key.namelength" : 26,
-                "key.nameoffset" : 11683,
-                "key.offset" : 11679,
-                "key.parsed_declaration" : "public var itemPositionGroupingHeight : CGFloat",
-                "key.parsed_scope.end" : 159,
-                "key.parsed_scope.start" : 159,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV26itemPositionGroupingHeight12CoreGraphics7CGFloatVvp"
+                "key.typename" : " (LayoutDescription.Configuration) -> (AnyListLayout) -> Bool",
+                "key.typeusr" : "$s6layoutSb10ListableUI13AnyListLayout_p_tcD",
+                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF"
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public init(itemHeight: CGFloat<\/Type> = 50.0, sectionHeaderHeight: CGFloat<\/Type> = 60.0, sectionFooterHeight: CGFloat<\/Type> = 40.0, listHeaderHeight: CGFloat<\/Type> = 60.0, listFooterHeight: CGFloat<\/Type> = 60.0, overscrollFooterHeight: CGFloat<\/Type> = 60.0, itemPositionGroupingHeight: CGFloat<\/Type> = 0.0)<\/Declaration>",
+                "key.annotated_decl" : "public func isSameLayoutType(as anyOther: AnyLayoutDescriptionConfiguration<\/Type>) -> Bool<\/Type><\/Declaration>",
                 "key.attributes" : [
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 11741
+                    "key.offset" : 3765
                   }
                 ],
-                "key.bodylength" : 412,
-                "key.bodyoffset" : 12116,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(itemHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 50.0<\/decl.var.parameter>, sectionHeaderHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, sectionFooterHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 40.0<\/decl.var.parameter>, listHeaderHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, listFooterHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, overscrollFooterHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, itemPositionGroupingHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.bodylength" : 266,
+                "key.bodyoffset" : 3860,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isSameLayoutType<\/decl.name>(as<\/decl.var.parameter.argument_label> anyOther<\/decl.var.parameter.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 781,
-                "key.name" : "init(itemHeight:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:itemPositionGroupingHeight:)",
-                "key.namelength" : 358,
-                "key.nameoffset" : 11748,
-                "key.offset" : 11748,
-                "key.parsed_declaration" : "public init(\n    itemHeight : CGFloat = 50.0,\n    sectionHeaderHeight : CGFloat = 60.0,\n    sectionFooterHeight : CGFloat = 40.0,\n    listHeaderHeight : CGFloat = 60.0,\n    listFooterHeight : CGFloat = 60.0,\n    overscrollFooterHeight : CGFloat = 60.0,\n    itemPositionGroupingHeight : CGFloat = 0.0\n)",
-                "key.parsed_scope.end" : 178,
-                "key.parsed_scope.start" : 161,
-                "key.substructure" : [
-
-                ],
-                "key.typename" : "(ListAppearance.Sizing.Type) -> (CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat) -> ListAppearance.Sizing",
-                "key.typeusr" : "$s10itemHeight013sectionHeaderB00c6FooterB004listdB00feB0010overscrolleB00a16PositionGroupingB010ListableUI14ListAppearanceV6SizingV12CoreGraphics7CGFloatV_A6OtcD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV10itemHeight013sectionHeaderG00h6FooterG004listiG00kjG0010overscrolljG00f16PositionGroupingG0AE12CoreGraphics7CGFloatV_A6Otcfc"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public mutating func set(with block: (inout Sizing<\/Type>) -> ())<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.mutating",
-                    "key.length" : 8,
-                    "key.offset" : 12554
-                  },
+                "key.length" : 355,
+                "key.name" : "isSameLayoutType(as:)",
+                "key.namelength" : 65,
+                "key.nameoffset" : 3777,
+                "key.offset" : 3772,
+                "key.overrides" : [
                   {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 12547
+                    "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF"
                   }
                 ],
-                "key.bodylength" : 92,
-                "key.bodyoffset" : 12615,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(with<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Sizing<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 145,
-                "key.name" : "set(with:)",
-                "key.namelength" : 37,
-                "key.nameoffset" : 12568,
-                "key.offset" : 12563,
-                "key.parsed_declaration" : "public mutating func set(with block: (inout Sizing) -> ())",
-                "key.parsed_scope.end" : 185,
-                "key.parsed_scope.start" : 180,
+                "key.parsed_declaration" : "public func isSameLayoutType(as anyOther : AnyLayoutDescriptionConfiguration) -> Bool",
+                "key.parsed_scope.end" : 135,
+                "key.parsed_scope.start" : 126,
                 "key.substructure" : [
                   {
-                    "key.annotated_decl" : "var edited: ListAppearance<\/Type>.Sizing<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> edited<\/decl.name>: ListAppearance<\/ref.struct>.Sizing<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 17,
-                    "key.name" : "edited",
-                    "key.namelength" : 6,
-                    "key.nameoffset" : 12632,
-                    "key.offset" : 12628,
-                    "key.parsed_declaration" : "var edited = self",
-                    "key.parsed_scope.end" : 182,
-                    "key.parsed_scope.start" : 182,
-                    "key.typename" : "ListAppearance.Sizing",
-                    "key.typeusr" : "$s10ListableUI14ListAppearanceV6SizingVD",
-                    "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV3set4withyyAEzXE_tF6editedL_AEvp"
+                    "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+                    "key.length" : 62,
+                    "key.name" : "TODO: We don't need both of these checks, just the second one.",
+                    "key.namelength" : 0,
+                    "key.nameoffset" : 0,
+                    "key.offset" : 3876
                   }
                 ],
-                "key.typename" : "(inout ListAppearance.Sizing) -> ((inout ListAppearance.Sizing) -> ()) -> ()",
-                "key.typeusr" : "$s4withyy10ListableUI14ListAppearanceV6SizingVzXE_tcD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV3set4withyyAEzXE_tF"
+                "key.typename" : " (LayoutDescription.Configuration) -> (AnyLayoutDescriptionConfiguration) -> Bool",
+                "key.typeusr" : "$s2asSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD",
+                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV06isSameC4Type2asSbAA03AnycdE0_p_tF"
               }
             ],
-            "key.typename" : "ListAppearance.Sizing.Type",
-            "key.typeusr" : "$s10ListableUI14ListAppearanceV6SizingVmD",
-            "key.usr" : "s:10ListableUI14ListAppearanceV6SizingV"
+            "key.typename" : "LayoutDescription.Configuration.Type",
+            "key.typeusr" : "$s10ListableUI17LayoutDescriptionV13ConfigurationVy_xGmD",
+            "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV"
+          }
+        ],
+        "key.typename" : "LayoutDescription.Type",
+        "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD",
+        "key.usr" : "s:10ListableUI17LayoutDescriptionV"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol AnyLayoutDescriptionConfiguration<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 4138
+          }
+        ],
+        "key.bodylength" : 432,
+        "key.bodyoffset" : 4189,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyLayoutDescriptionConfiguration<\/decl.name><\/decl.protocol>",
+        "key.kind" : "source.lang.swift.decl.protocol",
+        "key.length" : 477,
+        "key.name" : "AnyLayoutDescriptionConfiguration",
+        "key.namelength" : 33,
+        "key.nameoffset" : 4154,
+        "key.offset" : 4145,
+        "key.parsed_declaration" : "public protocol AnyLayoutDescriptionConfiguration",
+        "key.parsed_scope.end" : 156,
+        "key.parsed_scope.start" : 140,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func createEmptyLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>) -> AnyListLayout<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> createEmptyLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 106,
+            "key.name" : "createEmptyLayout(appearance:behavior:)",
+            "key.namelength" : 84,
+            "key.nameoffset" : 4199,
+            "key.offset" : 4194,
+            "key.parsed_declaration" : "func createEmptyLayout(\n    appearance : Appearance,\n    behavior: Behavior\n) -> AnyListLayout",
+            "key.parsed_scope.end" : 142,
+            "key.parsed_scope.start" : 142,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : " (Self) -> (Appearance, Behavior) -> AnyListLayout",
+            "key.typeusr" : "$s10appearance8behavior10ListableUI13AnyListLayout_pAC10AppearanceV_AC8BehaviorVtcD",
+            "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public struct Layout : Equatable<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 12766
-              }
+            "key.annotated_decl" : "func createPopulatedLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, delegate: CollectionViewLayoutDelegate<\/Type>) -> AnyListLayout<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> createPopulatedLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 159,
+            "key.name" : "createPopulatedLayout(appearance:behavior:delegate:)",
+            "key.namelength" : 137,
+            "key.nameoffset" : 4315,
+            "key.offset" : 4310,
+            "key.parsed_declaration" : "func createPopulatedLayout(\n    appearance : Appearance,\n    behavior: Behavior,\n    delegate : CollectionViewLayoutDelegate\n) -> AnyListLayout",
+            "key.parsed_scope.end" : 147,
+            "key.parsed_scope.start" : 147,
+            "key.substructure" : [
+
             ],
-            "key.bodylength" : 3263,
-            "key.bodyoffset" : 12804,
-            "key.doc.column" : 19,
-            "key.doc.comment" : "Layout options for the list.",
-            "key.doc.declaration" : "public struct Layout : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.doc.full_as_xml" : "Layout<\/Name>s:10ListableUI14ListAppearanceV6LayoutV<\/USR>public struct Layout : Equatable<\/Declaration>Layout options for the list.<\/Para><\/Abstract><\/CommentParts><\/Class>",
-            "key.doc.line" : 190,
-            "key.doc.name" : "Layout",
-            "key.doc.type" : "Class",
-            "key.doclength" : 33,
-            "key.docoffset" : 12729,
-            "key.elements" : [
-              {
-                "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 9,
-                "key.offset" : 12789
-              }
+            "key.typename" : " (Self) -> (Appearance, Behavior, CollectionViewLayoutDelegate) -> AnyListLayout",
+            "key.typeusr" : "$s10appearance8behavior8delegate10ListableUI13AnyListLayout_pAD10AppearanceV_AD8BehaviorVAD014CollectionViewH8Delegate_ptcD",
+            "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior8delegateAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewD8Delegate_ptF"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func shouldRebuild(layout anyLayout: AnyListLayout<\/Type>) -> Bool<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> shouldRebuild<\/decl.name>(layout<\/decl.var.parameter.argument_label> anyLayout<\/decl.var.parameter.name>: AnyListLayout<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 60,
+            "key.name" : "shouldRebuild(layout:)",
+            "key.namelength" : 47,
+            "key.nameoffset" : 4484,
+            "key.offset" : 4479,
+            "key.parsed_declaration" : "func shouldRebuild(layout anyLayout : AnyListLayout) -> Bool",
+            "key.parsed_scope.end" : 153,
+            "key.parsed_scope.start" : 153,
+            "key.substructure" : [
+
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Layout<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
-            "key.inheritedtypes" : [
-              {
-                "key.name" : "Equatable"
-              }
+            "key.typename" : " (Self) -> (AnyListLayout) -> Bool",
+            "key.typeusr" : "$s6layoutSb10ListableUI13AnyListLayout_p_tcD",
+            "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func isSameLayoutType(as other: AnyLayoutDescriptionConfiguration<\/Type>) -> Bool<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isSameLayoutType<\/decl.name>(as<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 75,
+            "key.name" : "isSameLayoutType(as:)",
+            "key.namelength" : 62,
+            "key.nameoffset" : 4550,
+            "key.offset" : 4545,
+            "key.parsed_declaration" : "func isSameLayoutType(as other : AnyLayoutDescriptionConfiguration) -> Bool",
+            "key.parsed_scope.end" : 155,
+            "key.parsed_scope.start" : 155,
+            "key.substructure" : [
+
             ],
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 3295,
-            "key.name" : "Layout",
-            "key.namelength" : 6,
-            "key.nameoffset" : 12780,
-            "key.offset" : 12773,
-            "key.parsed_declaration" : "public struct Layout : Equatable",
-            "key.parsed_scope.end" : 266,
-            "key.parsed_scope.start" : 190,
+            "key.typename" : " (Self) -> (AnyLayoutDescriptionConfiguration) -> Bool",
+            "key.typeusr" : "$s2asSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD",
+            "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF"
+          }
+        ],
+        "key.typename" : "AnyLayoutDescriptionConfiguration.Protocol",
+        "key.typeusr" : "$s10ListableUI33AnyLayoutDescriptionConfiguration_pmD",
+        "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 5733,
+    "key.offset" : 0,
+    "key.substructure" : [
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 107
+          }
+        ],
+        "key.bodylength" : 345,
+        "key.bodyoffset" : 151,
+        "key.elements" : [
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 13,
+            "key.offset" : 136
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>",
+        "key.inheritedtypes" : [
+          {
+            "key.name" : "AnyListLayout"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.protocol",
+        "key.length" : 383,
+        "key.name" : "ListLayout",
+        "key.namelength" : 10,
+        "key.nameoffset" : 123,
+        "key.offset" : 114,
+        "key.parsed_declaration" : "public protocol ListLayout : AnyListLayout",
+        "key.parsed_scope.end" : 25,
+        "key.parsed_scope.start" : 11,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "associatedtype LayoutAppearance : ListLayoutAppearance<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> LayoutAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.associatedtype>",
+            "key.kind" : "source.lang.swift.decl.associatedtype",
+            "key.length" : 52,
+            "key.name" : "LayoutAppearance",
+            "key.namelength" : 16,
+            "key.nameoffset" : 171,
+            "key.offset" : 156,
+            "key.parsed_declaration" : "associatedtype LayoutAppearance:ListLayoutAppearance",
+            "key.parsed_scope.end" : 13,
+            "key.parsed_scope.start" : 13,
+            "key.typename" : "Self.LayoutAppearance.Type",
+            "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzmD",
+            "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 260,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+            "key.kind" : "source.lang.swift.decl.var.static",
+            "key.length" : 48,
+            "key.name" : "defaults",
+            "key.namelength" : 8,
+            "key.nameoffset" : 229,
+            "key.offset" : 218,
+            "key.parsed_declaration" : "static var defaults : ListLayoutDefaults",
+            "key.parsed_scope.end" : 15,
+            "key.parsed_scope.start" : 15,
+            "key.typename" : "ListLayoutDefaults",
+            "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD",
+            "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var layoutAppearance: LayoutAppearance<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 317,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: LayoutAppearance<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 47,
+            "key.name" : "layoutAppearance",
+            "key.namelength" : 16,
+            "key.nameoffset" : 280,
+            "key.offset" : 276,
+            "key.parsed_declaration" : "var layoutAppearance : LayoutAppearance",
+            "key.parsed_scope.end" : 17,
+            "key.parsed_scope.start" : 17,
+            "key.typename" : "Self.LayoutAppearance",
+            "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
+            "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "init(layoutAppearance: LayoutAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 154,
+            "key.name" : "init(layoutAppearance:appearance:behavior:content:)",
+            "key.namelength" : 154,
+            "key.nameoffset" : 341,
+            "key.offset" : 341,
+            "key.parsed_declaration" : "init(\n    layoutAppearance : LayoutAppearance,\n    appearance : Appearance,\n    behavior : Behavior,\n    content : ListLayoutContent\n)",
+            "key.parsed_scope.end" : 19,
+            "key.parsed_scope.start" : 19,
             "key.substructure" : [
+
+            ],
+            "key.typename" : " (Self.Type) -> (Self.LayoutAppearance, Appearance, Behavior, ListLayoutContent) -> Self",
+            "key.typeusr" : "$s16layoutAppearance10appearance8behavior7contentx06LayoutB0Qz_10ListableUI0B0VAG8BehaviorVAG04ListF7ContentCtcD",
+            "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc"
+          }
+        ],
+        "key.typename" : "ListLayout.Protocol",
+        "key.typeusr" : "$s10ListableUI10ListLayout_pmD",
+        "key.usr" : "s:10ListableUI10ListLayoutP"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 500
+          }
+        ],
+        "key.bodylength" : 183,
+        "key.bodyoffset" : 529,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 206,
+        "key.name" : "ListLayout",
+        "key.namelength" : 10,
+        "key.nameoffset" : 517,
+        "key.offset" : 507,
+        "key.parsed_declaration" : "public extension ListLayout",
+        "key.parsed_scope.end" : 37,
+        "key.parsed_scope.start" : 28,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var direction: LayoutDirection<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 45,
+            "key.bodyoffset" : 566,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 78,
+            "key.name" : "direction",
+            "key.namelength" : 9,
+            "key.nameoffset" : 538,
+            "key.offset" : 534,
+            "key.parsed_declaration" : "var direction: LayoutDirection",
+            "key.parsed_scope.end" : 32,
+            "key.parsed_scope.start" : 30,
+            "key.related_decls" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var padding: UIEdgeInsets<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 12893
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The padding to place around the outside of the content of the list.",
-                "key.doc.declaration" : "public var padding: UIEdgeInsets",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "padding<\/Name>s:10ListableUI14ListAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp<\/USR>public var padding: UIEdgeInsets<\/Declaration>The padding to place around the outside of the content of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 193,
-                "key.doc.name" : "padding",
-                "key.doc.type" : "Other",
-                "key.doclength" : 72,
-                "key.docoffset" : 12813,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> padding<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 26,
-                "key.name" : "padding",
-                "key.namelength" : 7,
-                "key.nameoffset" : 12904,
-                "key.offset" : 12900,
-                "key.parsed_declaration" : "public var padding : UIEdgeInsets",
-                "key.parsed_scope.end" : 193,
-                "key.parsed_scope.start" : 193,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "UIEdgeInsets",
-                "key.typeusr" : "$sSo12UIEdgeInsetsVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var width: WidthConstraint<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 13022
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The width of the content of the list, which can be optionally constrained.",
-                "key.doc.declaration" : "public var width: WidthConstraint",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI14ListAppearanceV6LayoutV5widthAA15WidthConstraintOvp<\/USR>public var width: WidthConstraint<\/Declaration>The width of the content of the list, which can be optionally constrained.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 195,
-                "key.doc.name" : "width",
-                "key.doc.type" : "Other",
-                "key.doclength" : 79,
-                "key.docoffset" : 12935,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: WidthConstraint<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 27,
-                "key.name" : "width",
-                "key.namelength" : 5,
-                "key.nameoffset" : 13033,
-                "key.offset" : 13029,
-                "key.parsed_declaration" : "public var width : WidthConstraint",
-                "key.parsed_scope.end" : 195,
-                "key.parsed_scope.start" : 195,
-                "key.related_decls" : [
-                  {
-                    "key.annotated_decl" : "width(with:padding:constraint:)<\/RelatedName>"
-                  }
-                ],
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "WidthConstraint",
-                "key.typeusr" : "$s10ListableUI15WidthConstraintOD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV5widthAA15WidthConstraintOvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var headerToFirstSectionSpacing: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 13197
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The spacing between the list header and the first section.\nNot applied if there is no list header.",
-                "key.doc.declaration" : "public var headerToFirstSectionSpacing: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "headerToFirstSectionSpacing<\/Name>s:10ListableUI14ListAppearanceV6LayoutV27headerToFirstSectionSpacing12CoreGraphics7CGFloatVvp<\/USR>public var headerToFirstSectionSpacing: CGFloat<\/Declaration>The spacing between the list header and the first section. Not applied if there is no list header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 199,
-                "key.doc.name" : "headerToFirstSectionSpacing",
-                "key.doc.type" : "Other",
-                "key.doclength" : 115,
-                "key.docoffset" : 13074,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> headerToFirstSectionSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 41,
-                "key.name" : "headerToFirstSectionSpacing",
-                "key.namelength" : 27,
-                "key.nameoffset" : 13208,
-                "key.offset" : 13204,
-                "key.parsed_declaration" : "public var headerToFirstSectionSpacing : CGFloat",
-                "key.parsed_scope.end" : 199,
-                "key.parsed_scope.start" : 199,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV27headerToFirstSectionSpacing12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var interSectionSpacingWithNoFooter: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 13345
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The spacing to apply between sections, if the previous section has no footer.",
-                "key.doc.declaration" : "public var interSectionSpacingWithNoFooter: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "interSectionSpacingWithNoFooter<\/Name>s:10ListableUI14ListAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp<\/USR>public var interSectionSpacingWithNoFooter: CGFloat<\/Declaration>The spacing to apply between sections, if the previous section has no footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 202,
-                "key.doc.name" : "interSectionSpacingWithNoFooter",
-                "key.doc.type" : "Other",
-                "key.doclength" : 82,
-                "key.docoffset" : 13255,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interSectionSpacingWithNoFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 45,
-                "key.name" : "interSectionSpacingWithNoFooter",
-                "key.namelength" : 31,
-                "key.nameoffset" : 13356,
-                "key.offset" : 13352,
-                "key.parsed_declaration" : "public var interSectionSpacingWithNoFooter : CGFloat",
-                "key.parsed_scope.end" : 202,
-                "key.parsed_scope.start" : 202,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var interSectionSpacingWithFooter: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 13495
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The spacing to apply between sections, if the previous section has a footer.",
-                "key.doc.declaration" : "public var interSectionSpacingWithFooter: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "interSectionSpacingWithFooter<\/Name>s:10ListableUI14ListAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp<\/USR>public var interSectionSpacingWithFooter: CGFloat<\/Declaration>The spacing to apply between sections, if the previous section has a footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 204,
-                "key.doc.name" : "interSectionSpacingWithFooter",
-                "key.doc.type" : "Other",
-                "key.doclength" : 81,
-                "key.docoffset" : 13406,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interSectionSpacingWithFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 43,
-                "key.name" : "interSectionSpacingWithFooter",
-                "key.namelength" : 29,
-                "key.nameoffset" : 13506,
-                "key.offset" : 13502,
-                "key.parsed_declaration" : "public var interSectionSpacingWithFooter : CGFloat",
-                "key.parsed_scope.end" : 204,
-                "key.parsed_scope.start" : 204,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var sectionHeaderBottomSpacing: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 13693
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The spacing to apply below a section header, before its items.\nNot applied if there is no section header.",
-                "key.doc.declaration" : "public var sectionHeaderBottomSpacing: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "sectionHeaderBottomSpacing<\/Name>s:10ListableUI14ListAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp<\/USR>public var sectionHeaderBottomSpacing: CGFloat<\/Declaration>The spacing to apply below a section header, before its items. Not applied if there is no section header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 208,
-                "key.doc.name" : "sectionHeaderBottomSpacing",
-                "key.doc.type" : "Other",
-                "key.doclength" : 122,
-                "key.docoffset" : 13563,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionHeaderBottomSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 40,
-                "key.name" : "sectionHeaderBottomSpacing",
-                "key.namelength" : 26,
-                "key.nameoffset" : 13704,
-                "key.offset" : 13700,
-                "key.parsed_declaration" : "public var sectionHeaderBottomSpacing : CGFloat",
-                "key.parsed_scope.end" : 208,
-                "key.parsed_scope.start" : 208,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var itemSpacing: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 13826
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The spacing between individual items within a section in a list.",
-                "key.doc.declaration" : "public var itemSpacing: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "itemSpacing<\/Name>s:10ListableUI14ListAppearanceV6LayoutV11itemSpacing12CoreGraphics7CGFloatVvp<\/USR>public var itemSpacing: CGFloat<\/Declaration>The spacing between individual items within a section in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 210,
-                "key.doc.name" : "itemSpacing",
-                "key.doc.type" : "Other",
-                "key.doclength" : 69,
-                "key.docoffset" : 13749,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 25,
-                "key.name" : "itemSpacing",
-                "key.namelength" : 11,
-                "key.nameoffset" : 13837,
-                "key.offset" : 13833,
-                "key.parsed_declaration" : "public var itemSpacing : CGFloat",
-                "key.parsed_scope.end" : 210,
-                "key.parsed_scope.start" : 210,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV11itemSpacing12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var itemToSectionFooterSpacing: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 13999
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The spacing between the last item in the section and the footer.\nNot applied if there is no section footer.",
-                "key.doc.declaration" : "public var itemToSectionFooterSpacing: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "itemToSectionFooterSpacing<\/Name>s:10ListableUI14ListAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp<\/USR>public var itemToSectionFooterSpacing: CGFloat<\/Declaration>The spacing between the last item in the section and the footer. Not applied if there is no section footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 213,
-                "key.doc.name" : "itemToSectionFooterSpacing",
-                "key.doc.type" : "Other",
-                "key.doclength" : 124,
-                "key.docoffset" : 13867,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemToSectionFooterSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 40,
-                "key.name" : "itemToSectionFooterSpacing",
-                "key.namelength" : 26,
-                "key.nameoffset" : 14010,
-                "key.offset" : 14006,
-                "key.parsed_declaration" : "public var itemToSectionFooterSpacing : CGFloat",
-                "key.parsed_scope.end" : 213,
-                "key.parsed_scope.start" : 213,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var lastSectionToFooterSpacing: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 14193
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "The spacing between the last section and the footer of the list.\nNot applied if there is no list footer.",
-                "key.doc.declaration" : "public var lastSectionToFooterSpacing: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "lastSectionToFooterSpacing<\/Name>s:10ListableUI14ListAppearanceV6LayoutV26lastSectionToFooterSpacing12CoreGraphics7CGFloatVvp<\/USR>public var lastSectionToFooterSpacing: CGFloat<\/Declaration>The spacing between the last section and the footer of the list. Not applied if there is no list footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 217,
-                "key.doc.name" : "lastSectionToFooterSpacing",
-                "key.doc.type" : "Other",
-                "key.doclength" : 121,
-                "key.docoffset" : 14064,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastSectionToFooterSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 40,
-                "key.name" : "lastSectionToFooterSpacing",
-                "key.namelength" : 26,
-                "key.nameoffset" : 14204,
-                "key.offset" : 14200,
-                "key.parsed_declaration" : "public var lastSectionToFooterSpacing : CGFloat",
-                "key.parsed_scope.end" : 217,
-                "key.parsed_scope.start" : 217,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV26lastSectionToFooterSpacing12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public init(padding: UIEdgeInsets<\/Type> = .zero, width: WidthConstraint<\/Type> = .noConstraint, headerToFirstSectionSpacing: CGFloat<\/Type> = 0.0, interSectionSpacingWithNoFooter: CGFloat<\/Type> = 0.0, interSectionSpacingWithFooter: CGFloat<\/Type> = 0.0, sectionHeaderBottomSpacing: CGFloat<\/Type> = 0.0, itemSpacing: CGFloat<\/Type> = 0.0, itemToSectionFooterSpacing: CGFloat<\/Type> = 0.0, lastSectionToFooterSpacing: CGFloat<\/Type> = 0.0)<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 14328
-                  }
-                ],
-                "key.bodylength" : 626,
-                "key.bodyoffset" : 14842,
-                "key.doc.column" : 16,
-                "key.doc.comment" : "Creates a new `Layout` with the provided options.",
-                "key.doc.declaration" : "public init(padding: UIEdgeInsets = .zero, width: WidthConstraint = .noConstraint, headerToFirstSectionSpacing: CGFloat = 0.0, interSectionSpacingWithNoFooter: CGFloat = 0.0, interSectionSpacingWithFooter: CGFloat = 0.0, sectionHeaderBottomSpacing: CGFloat = 0.0, itemSpacing: CGFloat = 0.0, itemToSectionFooterSpacing: CGFloat = 0.0, lastSectionToFooterSpacing: CGFloat = 0.0)",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)<\/Name>s:10ListableUI14ListAppearanceV6LayoutV7padding5width27headerToFirstSectionSpacing05interkL12WithNoFooter0mklnP0019sectionHeaderBottomL004itemL00tikpL004lastkipL0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA6Utcfc<\/USR>public init(padding: UIEdgeInsets = .zero, width: WidthConstraint = .noConstraint, headerToFirstSectionSpacing: CGFloat = 0.0, interSectionSpacingWithNoFooter: CGFloat = 0.0, interSectionSpacingWithFooter: CGFloat = 0.0, sectionHeaderBottomSpacing: CGFloat = 0.0, itemSpacing: CGFloat = 0.0, itemToSectionFooterSpacing: CGFloat = 0.0, lastSectionToFooterSpacing: CGFloat = 0.0)<\/Declaration>Creates a new Layout<\/codeVoice> with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>",
-                "key.doc.line" : 220,
-                "key.doc.name" : "init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)",
-                "key.doc.type" : "Function",
-                "key.doclength" : 54,
-                "key.docoffset" : 14266,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(padding<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>, headerToFirstSectionSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, interSectionSpacingWithNoFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, interSectionSpacingWithFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, sectionHeaderBottomSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, itemToSectionFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, lastSectionToFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 1134,
-                "key.name" : "init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)",
-                "key.namelength" : 497,
-                "key.nameoffset" : 14335,
-                "key.offset" : 14335,
-                "key.parsed_declaration" : "public init(\n    padding : UIEdgeInsets = .zero,\n    width : WidthConstraint = .noConstraint,\n    headerToFirstSectionSpacing : CGFloat = 0.0,\n    interSectionSpacingWithNoFooter : CGFloat = 0.0,\n    interSectionSpacingWithFooter : CGFloat = 0.0,\n    sectionHeaderBottomSpacing : CGFloat = 0.0,\n    itemSpacing : CGFloat = 0.0,\n    itemToSectionFooterSpacing : CGFloat = 0.0,\n    lastSectionToFooterSpacing : CGFloat = 0.0\n)",
-                "key.parsed_scope.end" : 245,
-                "key.parsed_scope.start" : 220,
-                "key.substructure" : [
-
-                ],
-                "key.typename" : "(ListAppearance.Layout.Type) -> (UIEdgeInsets, WidthConstraint, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat) -> ListAppearance.Layout",
-                "key.typeusr" : "$s7padding5width27headerToFirstSectionSpacing05interfG12WithNoFooter0hfgiK0019sectionHeaderBottomG004itemG00odfkG004lastfdkG010ListableUI14ListAppearanceV6LayoutVSo12UIEdgeInsetsV_AJ15WidthConstraintO12CoreGraphics7CGFloatVA6UtcD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV7padding5width27headerToFirstSectionSpacing05interkL12WithNoFooter0mklnP0019sectionHeaderBottomL004itemL00tikpL004lastkipL0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA6Utcfc"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public mutating func set(with block: (inout Layout<\/Type>) -> ())<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.mutating",
-                    "key.length" : 8,
-                    "key.offset" : 15535
-                  },
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 15528
-                  }
-                ],
-                "key.bodylength" : 92,
-                "key.bodyoffset" : 15597,
-                "key.doc.column" : 30,
-                "key.doc.comment" : "Easily mutate the `Layout` in place.",
-                "key.doc.declaration" : "public mutating func set(with block: (inout Layout) -> ())",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "set(with:)<\/Name>s:10ListableUI14ListAppearanceV6LayoutV3set4withyyAEzXE_tF<\/USR>public mutating func set(with block: (inout Layout) -> ())<\/Declaration>Easily mutate the Layout<\/codeVoice> in place.<\/Para><\/Abstract><\/CommentParts><\/Function>",
-                "key.doc.line" : 248,
-                "key.doc.name" : "set(with:)",
-                "key.doc.type" : "Function",
-                "key.doclength" : 41,
-                "key.docoffset" : 15479,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(with<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Layout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 146,
-                "key.name" : "set(with:)",
-                "key.namelength" : 38,
-                "key.nameoffset" : 15549,
-                "key.offset" : 15544,
-                "key.parsed_declaration" : "public mutating func set(with block : (inout Layout) -> ())",
-                "key.parsed_scope.end" : 253,
-                "key.parsed_scope.start" : 248,
-                "key.substructure" : [
-                  {
-                    "key.annotated_decl" : "var edited: ListAppearance<\/Type>.Layout<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> edited<\/decl.name>: ListAppearance<\/ref.struct>.Layout<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 17,
-                    "key.name" : "edited",
-                    "key.namelength" : 6,
-                    "key.nameoffset" : 15614,
-                    "key.offset" : 15610,
-                    "key.parsed_declaration" : "var edited = self",
-                    "key.parsed_scope.end" : 250,
-                    "key.parsed_scope.start" : 250,
-                    "key.typename" : "ListAppearance.Layout",
-                    "key.typeusr" : "$s10ListableUI14ListAppearanceV6LayoutVD",
-                    "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV3set4withyyAEzXE_tF6editedL_AEvp"
-                  }
-                ],
-                "key.typename" : "(inout ListAppearance.Layout) -> ((inout ListAppearance.Layout) -> ()) -> ()",
-                "key.typeusr" : "$s4withyy10ListableUI14ListAppearanceV6LayoutVzXE_tcD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV3set4withyyAEzXE_tF"
-              },
+                "key.annotated_decl" : "direction<\/RelatedName>"
+              }
+            ],
+            "key.typename" : "LayoutDirection",
+            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
+            "key.usr" : "s:10ListableUI10ListLayoutPAAE9directionAA0D9DirectionOvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var stickySectionHeaders: Bool<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 56,
+            "key.bodyoffset" : 654,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 89,
+            "key.name" : "stickySectionHeaders",
+            "key.namelength" : 20,
+            "key.nameoffset" : 626,
+            "key.offset" : 622,
+            "key.parsed_declaration" : "var stickySectionHeaders: Bool",
+            "key.parsed_scope.end" : 36,
+            "key.parsed_scope.start" : 34,
+            "key.related_decls" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "internal static func width(with width: CGFloat<\/Type>, padding: HorizontalPadding<\/Type>, constraint: WidthConstraint<\/Type>) -> CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.internal",
-                    "key.length" : 8,
-                    "key.offset" : 15749
-                  }
-                ],
-                "key.bodylength" : 138,
-                "key.bodyoffset" : 15923,
-                "key.doc.column" : 30,
-                "key.doc.comment" : "Provides a width for layout.",
-                "key.doc.declaration" : "internal static func width(with width: CGFloat, padding: HorizontalPadding, constraint: WidthConstraint) -> CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.doc.full_as_xml" : "width(with:padding:constraint:)<\/Name>s:10ListableUI14ListAppearanceV6LayoutV5width4with7padding10constraint12CoreGraphics7CGFloatVAL_AA17HorizontalPaddingVAA15WidthConstraintOtFZ<\/USR>internal static func width(with width: CGFloat, padding: HorizontalPadding, constraint: WidthConstraint) -> CGFloat<\/Declaration>Provides a width for layout.<\/Para><\/Abstract><\/CommentParts><\/Function>",
-                "key.doc.line" : 256,
-                "key.doc.name" : "width(with:padding:constraint:)",
-                "key.doc.type" : "Function",
-                "key.doclength" : 33,
-                "key.docoffset" : 15708,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> width<\/decl.name>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, padding<\/decl.var.parameter.argument_label>: HorizontalPadding<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, constraint<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
-                "key.kind" : "source.lang.swift.decl.function.method.static",
-                "key.length" : 304,
-                "key.name" : "width(with:padding:constraint:)",
-                "key.namelength" : 132,
-                "key.nameoffset" : 15770,
-                "key.offset" : 15758,
-                "key.parsed_declaration" : "internal static func width(\n    with width : CGFloat,\n    padding : HorizontalPadding,\n    constraint : WidthConstraint\n) -> CGFloat",
-                "key.parsed_scope.end" : 265,
-                "key.parsed_scope.start" : 256,
-                "key.related_decls" : [
-                  {
-                    "key.annotated_decl" : "width<\/RelatedName>"
-                  }
-                ],
-                "key.substructure" : [
-                  {
-                    "key.annotated_decl" : "let paddedWidth: CGFloat<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> paddedWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 54,
-                    "key.name" : "paddedWidth",
-                    "key.namelength" : 11,
-                    "key.nameoffset" : 15940,
-                    "key.offset" : 15936,
-                    "key.parsed_declaration" : "let paddedWidth = width - padding.left - padding.right",
-                    "key.parsed_scope.end" : 262,
-                    "key.parsed_scope.start" : 262,
-                    "key.typename" : "CGFloat",
-                    "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                    "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV5width4with7padding10constraint12CoreGraphics7CGFloatVAL_AA17HorizontalPaddingVAA15WidthConstraintOtFZ06paddedO0L_ALvp"
-                  }
-                ],
-                "key.typename" : "(ListAppearance.Layout.Type) -> (CGFloat, HorizontalPadding, WidthConstraint) -> CGFloat",
-                "key.typeusr" : "$s4with7padding10constraint12CoreGraphics7CGFloatVAF_10ListableUI17HorizontalPaddingVAG15WidthConstraintOtcD",
-                "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV5width4with7padding10constraint12CoreGraphics7CGFloatVAL_AA17HorizontalPaddingVAA15WidthConstraintOtFZ"
+                "key.annotated_decl" : "stickySectionHeaders<\/RelatedName>"
               }
             ],
-            "key.typename" : "ListAppearance.Layout.Type",
-            "key.typeusr" : "$s10ListableUI14ListAppearanceV6LayoutVmD",
-            "key.usr" : "s:10ListableUI14ListAppearanceV6LayoutV"
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI10ListLayoutPAAE20stickySectionHeadersSbvp"
           }
         ],
-        "key.typename" : "ListAppearance.Type",
-        "key.typeusr" : "$s10ListableUI14ListAppearanceVmD",
-        "key.usr" : "s:10ListableUI14ListAppearanceV"
+        "key.typename" : "ListLayout.Protocol",
+        "key.typeusr" : "$s10ListableUI10ListLayout_pmD",
+        "key.usr" : "s:10ListableUI10ListLayoutP"
       },
       {
-        "key.accessibility" : "source.lang.swift.accessibility.internal",
-        "key.annotated_decl" : "final class DefaultListLayout : ListLayout<\/Type><\/Declaration>",
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>",
         "key.attributes" : [
           {
-            "key.attribute" : "source.decl.attribute.final",
-            "key.length" : 5,
-            "key.offset" : 16073
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 716
           }
         ],
-        "key.bodylength" : 13289,
-        "key.bodyoffset" : 16117,
+        "key.bodylength" : 623,
+        "key.bodyoffset" : 759,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 10,
-            "key.offset" : 16105
+            "key.length" : 9,
+            "key.offset" : 748
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-        "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DefaultListLayout<\/decl.name> : ListLayout<\/ref.protocol><\/decl.class>",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.inheritedtypes" : [
           {
-            "key.name" : "ListLayout"
+            "key.name" : "AnyObject"
           }
         ],
-        "key.kind" : "source.lang.swift.decl.class",
-        "key.length" : 13328,
-        "key.name" : "DefaultListLayout",
-        "key.namelength" : 17,
-        "key.nameoffset" : 16085,
-        "key.offset" : 16079,
-        "key.parsed_declaration" : "final class DefaultListLayout : ListLayout",
-        "key.parsed_scope.end" : 625,
-        "key.parsed_scope.start" : 270,
+        "key.kind" : "source.lang.swift.decl.protocol",
+        "key.length" : 660,
+        "key.name" : "AnyListLayout",
+        "key.namelength" : 13,
+        "key.nameoffset" : 732,
+        "key.offset" : 723,
+        "key.parsed_declaration" : "public protocol AnyListLayout : AnyObject",
+        "key.parsed_scope.end" : 69,
+        "key.parsed_scope.start" : 40,
         "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "typealias DefaultListLayout<\/Type>.LayoutAppearance = ListAppearance<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> DefaultListLayout<\/ref.class>.LayoutAppearance<\/decl.name> = ListAppearance<\/ref.struct><\/decl.typealias>",
-            "key.kind" : "source.lang.swift.decl.typealias",
-            "key.length" : 43,
-            "key.name" : "LayoutAppearance",
-            "key.namelength" : 16,
-            "key.nameoffset" : 16132,
-            "key.offset" : 16122,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa"
-              }
-            ],
-            "key.parsed_declaration" : "typealias LayoutAppearance = ListAppearance",
-            "key.parsed_scope.end" : 272,
-            "key.parsed_scope.start" : 272,
-            "key.typename" : "ListAppearance.Type",
-            "key.typeusr" : "$s10ListableUI14ListAppearanceVmD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC0E10Appearancea"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 56,
-            "key.bodyoffset" : 16216,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
-            "key.kind" : "source.lang.swift.decl.var.static",
-            "key.length" : 98,
-            "key.name" : "defaults",
-            "key.namelength" : 8,
-            "key.nameoffset" : 16186,
-            "key.offset" : 16175,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ"
-              }
-            ],
-            "key.parsed_declaration" : "static var defaults: ListLayoutDefaults",
-            "key.parsed_scope.end" : 276,
-            "key.parsed_scope.start" : 274,
-            "key.typename" : "ListLayoutDefaults",
-            "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC8defaultsAA0dE8DefaultsVvpZ"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var layoutAppearance: ListAppearance<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: ListAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 36,
-            "key.name" : "layoutAppearance",
-            "key.namelength" : 16,
-            "key.nameoffset" : 16287,
-            "key.offset" : 16283,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp"
-              }
-            ],
-            "key.parsed_declaration" : "var layoutAppearance: ListAppearance",
-            "key.parsed_scope.end" : 278,
-            "key.parsed_scope.start" : 278,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "ListAppearance",
-            "key.typeusr" : "$s10ListableUI14ListAppearanceVD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC16layoutAppearanceAA0dG0Vvp"
-          },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
             "key.length" : 23,
             "key.name" : "MARK: Public Properties",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 16339
+            "key.offset" : 774
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let appearance: Appearance<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var appearance: Appearance<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 843,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 27,
+            "key.length" : 35,
             "key.name" : "appearance",
             "key.namelength" : 10,
-            "key.nameoffset" : 16383,
-            "key.offset" : 16379,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp"
-              }
-            ],
-            "key.parsed_declaration" : "let appearance : Appearance",
-            "key.parsed_scope.end" : 284,
-            "key.parsed_scope.start" : 284,
+            "key.nameoffset" : 818,
+            "key.offset" : 814,
+            "key.parsed_declaration" : "var appearance : Appearance",
+            "key.parsed_scope.end" : 46,
+            "key.parsed_scope.start" : 46,
             "key.typename" : "Appearance",
             "key.typeusr" : "$s10ListableUI10AppearanceVD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC10appearanceAA10AppearanceVvp"
+            "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let behavior: Behavior<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var behavior: Behavior<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 879,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 23,
+            "key.length" : 31,
             "key.name" : "behavior",
             "key.namelength" : 8,
-            "key.nameoffset" : 16415,
-            "key.offset" : 16411,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp"
-              }
-            ],
-            "key.parsed_declaration" : "let behavior : Behavior",
-            "key.parsed_scope.end" : 285,
-            "key.parsed_scope.start" : 285,
+            "key.nameoffset" : 858,
+            "key.offset" : 854,
+            "key.parsed_declaration" : "var behavior : Behavior",
+            "key.parsed_scope.end" : 47,
+            "key.parsed_scope.start" : 47,
             "key.typename" : "Behavior",
             "key.typeusr" : "$s10ListableUI8BehaviorVD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC8behaviorAA8BehaviorVvp"
+            "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let content: ListLayoutContent<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type><\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var content: ListLayoutContent<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 928,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 31,
+            "key.length" : 39,
             "key.name" : "content",
             "key.namelength" : 7,
-            "key.nameoffset" : 16448,
-            "key.offset" : 16444,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp"
-              }
-            ],
-            "key.parsed_declaration" : "let content : ListLayoutContent",
-            "key.parsed_scope.end" : 287,
-            "key.parsed_scope.start" : 287,
+            "key.nameoffset" : 899,
+            "key.offset" : 895,
+            "key.parsed_declaration" : "var content : ListLayoutContent",
+            "key.parsed_scope.end" : 49,
+            "key.parsed_scope.start" : 49,
             "key.typename" : "ListLayoutContent",
             "key.typeusr" : "$s10ListableUI17ListLayoutContentCD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC7contentAA0dE7ContentCvp"
+            "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 303,
-            "key.bodyoffset" : 16551,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 1011,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 362,
+            "key.length" : 65,
             "key.name" : "scrollViewProperties",
             "key.namelength" : 20,
-            "key.nameoffset" : 16497,
-            "key.offset" : 16493,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp"
-              }
-            ],
-            "key.parsed_declaration" : "var scrollViewProperties: ListLayoutScrollViewProperties",
-            "key.parsed_scope.end" : 298,
-            "key.parsed_scope.start" : 289,
+            "key.nameoffset" : 956,
+            "key.offset" : 952,
+            "key.parsed_declaration" : "var scrollViewProperties : ListLayoutScrollViewProperties",
+            "key.parsed_scope.end" : 51,
+            "key.parsed_scope.start" : 51,
             "key.typename" : "ListLayoutScrollViewProperties",
             "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC20scrollViewPropertiesAA0de6ScrollgH0Vvp"
+            "key.usr" : "s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp"
           },
           {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 20,
-            "key.name" : "MARK: Initialization",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 16879
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var direction: LayoutDirection<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 1060,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 39,
+            "key.name" : "direction",
+            "key.namelength" : 9,
+            "key.nameoffset" : 1031,
+            "key.offset" : 1027,
+            "key.parsed_declaration" : "var direction : LayoutDirection",
+            "key.parsed_scope.end" : 53,
+            "key.parsed_scope.start" : 53,
+            "key.typename" : "LayoutDirection",
+            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
+            "key.usr" : "s:10ListableUI13AnyListLayoutP9directionAA0E9DirectionOvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "init(layoutAppearance: LayoutAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>",
-            "key.bodylength" : 164,
-            "key.bodyoffset" : 17072,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: LayoutAppearance<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 321,
-            "key.name" : "init(layoutAppearance:appearance:behavior:content:)",
-            "key.namelength" : 154,
-            "key.nameoffset" : 16916,
-            "key.offset" : 16916,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc"
-              }
-            ],
-            "key.parsed_declaration" : "init(\n    layoutAppearance : LayoutAppearance,\n    appearance : Appearance,\n    behavior : Behavior,\n    content : ListLayoutContent\n)",
-            "key.parsed_scope.end" : 315,
-            "key.parsed_scope.start" : 304,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(DefaultListLayout.Type) -> (ListAppearance, Appearance, Behavior, ListLayoutContent) -> DefaultListLayout",
-            "key.typeusr" : "$s16layoutAppearance10appearance8behavior7content10ListableUI17DefaultListLayoutCAE0iB0V_AE0B0VAE8BehaviorVAE0iJ7ContentCtcD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC16layoutAppearance10appearance8behavior7contentAcA0dG0V_AA0G0VAA8BehaviorVAA0dE7ContentCtcfc"
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var stickySectionHeaders: Bool<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 1109,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 39,
+            "key.name" : "stickySectionHeaders",
+            "key.namelength" : 20,
+            "key.nameoffset" : 1080,
+            "key.offset" : 1076,
+            "key.parsed_declaration" : "var stickySectionHeaders : Bool",
+            "key.parsed_scope.end" : 55,
+            "key.parsed_scope.start" : 55,
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI13AnyListLayoutP20stickySectionHeadersSbvp"
           },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -42134,1797 +42722,1365 @@
             "key.name" : "MARK: Performing Layouts",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 17257
+            "key.offset" : 1135
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func updateLayout(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.bodylength" : 14,
-            "key.bodyoffset" : 17359,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 76,
+            "key.length" : 55,
             "key.name" : "updateLayout(in:)",
             "key.namelength" : 50,
-            "key.nameoffset" : 17303,
-            "key.offset" : 17298,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF"
-              }
-            ],
+            "key.nameoffset" : 1181,
+            "key.offset" : 1176,
             "key.parsed_declaration" : "func updateLayout(in collectionView : UICollectionView)",
-            "key.parsed_scope.end" : 324,
-            "key.parsed_scope.start" : 321,
+            "key.parsed_scope.end" : 61,
+            "key.parsed_scope.start" : 61,
             "key.substructure" : [
 
             ],
-            "key.typename" : "(DefaultListLayout) -> (UICollectionView) -> ()",
+            "key.typename" : " (Self) -> (UICollectionView) -> ()",
             "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC06updateE02inySo16UICollectionViewC_tF"
+            "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func layout(delegate: CollectionViewLayoutDelegate<\/Type>, in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.bodylength" : 11726,
-            "key.bodyoffset" : 17498,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layout<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 11841,
+            "key.length" : 112,
             "key.name" : "layout(delegate:in:)",
             "key.namelength" : 107,
-            "key.nameoffset" : 17389,
-            "key.offset" : 17384,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
-              }
-            ],
+            "key.nameoffset" : 1246,
+            "key.offset" : 1241,
             "key.parsed_declaration" : "func layout(\n    delegate : CollectionViewLayoutDelegate,\n    in collectionView : UICollectionView\n)",
-            "key.parsed_scope.end" : 617,
-            "key.parsed_scope.start" : 326,
+            "key.parsed_scope.end" : 63,
+            "key.parsed_scope.start" : 63,
             "key.substructure" : [
-              {
-                "key.annotated_decl" : "let layout: ListAppearance<\/Type>.Layout<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: ListAppearance<\/ref.struct>.Layout<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 41,
-                "key.name" : "layout",
-                "key.namelength" : 6,
-                "key.nameoffset" : 17511,
-                "key.offset" : 17507,
-                "key.parsed_declaration" : "let layout = self.layoutAppearance.layout",
-                "key.parsed_scope.end" : 330,
-                "key.parsed_scope.start" : 330,
-                "key.related_decls" : [
-                  {
-                    "key.annotated_decl" : "layout(delegate:in:)<\/RelatedName>"
-                  }
-                ],
-                "key.typename" : "ListAppearance.Layout",
-                "key.typeusr" : "$s10ListableUI14ListAppearanceV6LayoutVD",
-                "key.usr" : "s:10ListableUI17DefaultListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtFADL_AA0D10AppearanceV0E0Vvp"
-              },
-              {
-                "key.annotated_decl" : "let sizing: ListAppearance<\/Type>.Sizing<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sizing<\/decl.name>: ListAppearance<\/ref.struct>.Sizing<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 41,
-                "key.name" : "sizing",
-                "key.namelength" : 6,
-                "key.nameoffset" : 17561,
-                "key.offset" : 17557,
-                "key.parsed_declaration" : "let sizing = self.layoutAppearance.sizing",
-                "key.parsed_scope.end" : 331,
-                "key.parsed_scope.start" : 331,
-                "key.typename" : "ListAppearance.Sizing",
-                "key.typeusr" : "$s10ListableUI14ListAppearanceV6SizingVD",
-                "key.usr" : "s:10ListableUI17DefaultListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF6sizingL_AA0D10AppearanceV6SizingVvp"
-              },
-              {
-                "key.annotated_decl" : "let viewSize: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 41,
-                "key.name" : "viewSize",
-                "key.namelength" : 8,
-                "key.nameoffset" : 17620,
-                "key.offset" : 17616,
-                "key.parsed_declaration" : "let viewSize = collectionView.bounds.size",
-                "key.parsed_scope.end" : 333,
-                "key.parsed_scope.start" : 333,
-                "key.typename" : "CGSize",
-                "key.typeusr" : "$sSo6CGSizeVD",
-                "key.usr" : "s:10ListableUI17DefaultListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF8viewSizeL_So6CGSizeVvp"
-              },
-              {
-                "key.annotated_decl" : "let viewWidth: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 43,
-                "key.name" : "viewWidth",
-                "key.namelength" : 9,
-                "key.nameoffset" : 17679,
-                "key.offset" : 17675,
-                "key.parsed_declaration" : "let viewWidth = collectionView.bounds.width",
-                "key.parsed_scope.end" : 335,
-                "key.parsed_scope.start" : 335,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI17DefaultListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF9viewWidthL_12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.annotated_decl" : "let rootWidth: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rootWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 221,
-                "key.name" : "rootWidth",
-                "key.namelength" : 9,
-                "key.nameoffset" : 17740,
-                "key.offset" : 17736,
-                "key.parsed_declaration" : "let rootWidth = ListAppearance.Layout.width(\n    with: viewSize.width,\n    padding: HorizontalPadding(left: layout.padding.left, right: layout.padding.right),\n    constraint: layout.width\n)",
-                "key.parsed_scope.end" : 337,
-                "key.parsed_scope.start" : 337,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI17DefaultListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF9rootWidthL_12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.annotated_decl" : "var lastContentMaxY: CGFloat<\/Type><\/Declaration>",
-                "key.doc.comment" : "Item positions are set and sent to the delegate first,\nin case the position affects the height calculation later in the layout pass.",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastContentMaxY<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 35,
-                "key.name" : "lastContentMaxY",
-                "key.namelength" : 15,
-                "key.nameoffset" : 18407,
-                "key.offset" : 18403,
-                "key.parsed_declaration" : "var lastContentMaxY : CGFloat = 0.0",
-                "key.parsed_scope.end" : 359,
-                "key.parsed_scope.start" : 359,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI17DefaultListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF15lastContentMaxYL_12CoreGraphics7CGFloatVvp"
-              }
+
             ],
-            "key.typename" : "(DefaultListLayout) -> (CollectionViewLayoutDelegate, UICollectionView) -> ()",
+            "key.typename" : " (Self) -> (CollectionViewLayoutDelegate, UICollectionView) -> ()",
             "key.typeusr" : "$s8delegate2iny10ListableUI28CollectionViewLayoutDelegate_p_So012UICollectionF0CtcD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
+            "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.private",
-            "key.annotated_decl" : "private func setItemPositions()<\/Declaration>",
-            "key.attributes" : [
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func setZIndexes()<\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setZIndexes<\/decl.name>()<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 18,
+            "key.name" : "setZIndexes()",
+            "key.namelength" : 13,
+            "key.nameoffset" : 1368,
+            "key.offset" : 1363,
+            "key.parsed_declaration" : "func setZIndexes()",
+            "key.parsed_scope.end" : 68,
+            "key.parsed_scope.start" : 68,
+            "key.related_decls" : [
               {
-                "key.attribute" : "source.decl.attribute.private",
-                "key.length" : 7,
-                "key.offset" : 29235
+                "key.annotated_decl" : "setZIndexes()<\/RelatedName>"
               }
             ],
-            "key.bodylength" : 132,
-            "key.bodyoffset" : 29272,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setItemPositions<\/decl.name>()<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 162,
-            "key.name" : "setItemPositions()",
-            "key.namelength" : 18,
-            "key.nameoffset" : 29248,
-            "key.offset" : 29243,
-            "key.parsed_declaration" : "private func setItemPositions()",
-            "key.parsed_scope.end" : 624,
-            "key.parsed_scope.start" : 619,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(DefaultListLayout) -> () -> ()",
+            "key.typename" : " (Self) -> () -> ()",
             "key.typeusr" : "$syycD",
-            "key.usr" : "s:10ListableUI17DefaultListLayoutC16setItemPositions33_F0CBB6890B9708D0D6E4B5A9172AF35FLLyyF"
+            "key.usr" : "s:10ListableUI13AnyListLayoutP11setZIndexesyyF"
           }
         ],
-        "key.typename" : "DefaultListLayout.Type",
-        "key.typeusr" : "$s10ListableUI17DefaultListLayoutCmD",
-        "key.usr" : "s:10ListableUI17DefaultListLayoutC"
+        "key.typename" : "AnyListLayout.Protocol",
+        "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD",
+        "key.usr" : "s:10ListableUI13AnyListLayoutP"
       },
       {
-        "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
-        "key.annotated_decl" : "final class SectionInfo<\/Declaration>",
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>",
         "key.attributes" : [
           {
-            "key.attribute" : "source.decl.attribute.fileprivate",
-            "key.length" : 11,
-            "key.offset" : 29410
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 1386
           }
         ],
-        "key.bodylength" : 2142,
-        "key.bodyoffset" : 29463,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-        "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SectionInfo<\/decl.name><\/decl.class>",
+        "key.bodylength" : 460,
+        "key.bodyoffset" : 1418,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 2184,
-        "key.name" : "ListLayoutContent.SectionInfo",
-        "key.namelength" : 29,
-        "key.nameoffset" : 29432,
-        "key.offset" : 29422,
-        "key.parsed_declaration" : "fileprivate extension ListLayoutContent.SectionInfo",
-        "key.parsed_scope.end" : 692,
-        "key.parsed_scope.start" : 628,
+        "key.length" : 486,
+        "key.name" : "AnyListLayout",
+        "key.namelength" : 13,
+        "key.nameoffset" : 1403,
+        "key.offset" : 1393,
+        "key.parsed_declaration" : "public extension AnyListLayout",
+        "key.parsed_scope.end" : 91,
+        "key.parsed_scope.start" : 72,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
-            "key.annotated_decl" : "func setItemPositions(with appearance: ListAppearance<\/Type>)<\/Declaration>",
-            "key.bodylength" : 1188,
-            "key.bodyoffset" : 29529,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setItemPositions<\/decl.name>(with<\/decl.var.parameter.argument_label> appearance<\/decl.var.parameter.name>: ListAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func setZIndexes()<\/Declaration>",
+            "key.bodylength" : 429,
+            "key.bodyoffset" : 1447,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setZIndexes<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 1250,
-            "key.name" : "setItemPositions(with:)",
-            "key.namelength" : 50,
-            "key.nameoffset" : 29473,
-            "key.offset" : 29468,
-            "key.parsed_declaration" : "func setItemPositions(with appearance : ListAppearance)",
-            "key.parsed_scope.end" : 663,
-            "key.parsed_scope.start" : 630,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(ListLayoutContent.SectionInfo) -> (ListAppearance) -> ()",
-            "key.typeusr" : "$s4withy10ListableUI14ListAppearanceV_tcD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC16setItemPositions33_F0CBB6890B9708D0D6E4B5A9172AF35FLL4withyAA0C10AppearanceV_tF"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.private",
-            "key.annotated_decl" : "private static func grouped(items: [ListLayoutContent<\/Type>.ItemInfo<\/Type>], groupingHeight: CGFloat<\/Type>, appearance: ListAppearance<\/Type>) -> [[ListLayoutContent<\/Type>.ItemInfo<\/Type>]]<\/Declaration>",
-            "key.attributes" : [
+            "key.length" : 454,
+            "key.name" : "setZIndexes()",
+            "key.namelength" : 13,
+            "key.nameoffset" : 1428,
+            "key.offset" : 1423,
+            "key.parsed_declaration" : "func setZIndexes()",
+            "key.parsed_scope.end" : 90,
+            "key.parsed_scope.start" : 74,
+            "key.related_decls" : [
               {
-                "key.attribute" : "source.decl.attribute.private",
-                "key.length" : 7,
-                "key.offset" : 30728
+                "key.annotated_decl" : "setZIndexes()<\/RelatedName>"
               }
             ],
-            "key.bodylength" : 714,
-            "key.bodyoffset" : 30888,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> grouped<\/decl.name>(items<\/decl.var.parameter.argument_label>: [ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>, groupingHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ListAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [[ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]]<\/decl.function.returntype><\/decl.function.method.static>",
-            "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 867,
-            "key.name" : "grouped(items:groupingHeight:appearance:)",
-            "key.namelength" : 100,
-            "key.nameoffset" : 30748,
-            "key.offset" : 30736,
-            "key.parsed_declaration" : "private static func grouped(items : [ListLayoutContent.ItemInfo], groupingHeight : CGFloat, appearance : ListAppearance) -> [[ListLayoutContent.ItemInfo]]",
-            "key.parsed_scope.end" : 690,
-            "key.parsed_scope.start" : 665,
             "key.substructure" : [
-              {
-                "key.annotated_decl" : "var all: [[ListLayoutContent<\/Type>.ItemInfo<\/Type>]]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [[ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]]<\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 42,
-                "key.name" : "all",
-                "key.namelength" : 3,
-                "key.nameoffset" : 30901,
-                "key.offset" : 30897,
-                "key.parsed_declaration" : "var all = [[ListLayoutContent.ItemInfo]]()",
-                "key.parsed_scope.end" : 667,
-                "key.parsed_scope.start" : 667,
-                "key.related_decls" : [
-                  {
-                    "key.annotated_decl" : "all<\/RelatedName>"
-                  }
-                ],
-                "key.typename" : "[[ListLayoutContent.ItemInfo]]",
-                "key.typeusr" : "$sSaySay10ListableUI17ListLayoutContentC8ItemInfoCGGD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_F0CBB6890B9708D0D6E4B5A9172AF35FLL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_12CoreGraphics7CGFloatVAA0C10AppearanceVtFZ3allL_ANvp"
-              },
-              {
-                "key.annotated_decl" : "var current: [ListLayoutContent<\/Type>.ItemInfo<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> current<\/decl.name>: [ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 44,
-                "key.name" : "current",
-                "key.namelength" : 7,
-                "key.nameoffset" : 30952,
-                "key.offset" : 30948,
-                "key.parsed_declaration" : "var current = [ListLayoutContent.ItemInfo]()",
-                "key.parsed_scope.end" : 668,
-                "key.parsed_scope.start" : 668,
-                "key.typename" : "[ListLayoutContent.ItemInfo]",
-                "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC8ItemInfoCGD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_F0CBB6890B9708D0D6E4B5A9172AF35FLL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_12CoreGraphics7CGFloatVAA0C10AppearanceVtFZ7currentL_AMvp"
-              },
-              {
-                "key.annotated_decl" : "var lastSpacing: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 31,
-                "key.name" : "lastSpacing",
-                "key.namelength" : 11,
-                "key.nameoffset" : 31014,
-                "key.offset" : 31010,
-                "key.parsed_declaration" : "var lastSpacing : CGFloat = 0.0",
-                "key.parsed_scope.end" : 670,
-                "key.parsed_scope.start" : 670,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_F0CBB6890B9708D0D6E4B5A9172AF35FLL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_12CoreGraphics7CGFloatVAA0C10AppearanceVtFZ11lastSpacingL_AQvp"
-              }
+
             ],
-            "key.typename" : "(ListLayoutContent.SectionInfo.Type) -> ([ListLayoutContent.ItemInfo], CGFloat, ListAppearance) -> [[ListLayoutContent.ItemInfo]]",
-            "key.typeusr" : "$s5items14groupingHeight10appearanceSaySay10ListableUI17ListLayoutContentC8ItemInfoCGGAI_12CoreGraphics7CGFloatVAD0G10AppearanceVtcD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_F0CBB6890B9708D0D6E4B5A9172AF35FLL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_12CoreGraphics7CGFloatVAA0C10AppearanceVtFZ"
+            "key.typename" : " (Self) -> () -> ()",
+            "key.typeusr" : "$syycD",
+            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE11setZIndexesyyF"
           }
         ],
-        "key.typename" : "ListLayoutContent.SectionInfo.Type",
-        "key.typeusr" : "$s10ListableUI17ListLayoutContentC11SectionInfoCmD",
-        "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC"
+        "key.typename" : "AnyListLayout.Protocol",
+        "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD",
+        "key.usr" : "s:10ListableUI13AnyListLayoutP"
       },
       {
-        "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
-        "key.annotated_decl" : "public struct Columns<\/Declaration>",
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>",
         "key.attributes" : [
           {
-            "key.attribute" : "source.decl.attribute.fileprivate",
-            "key.length" : 11,
-            "key.offset" : 31609
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 1882
           }
         ],
-        "key.bodylength" : 285,
-        "key.bodyoffset" : 31648,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Columns<\/decl.name><\/decl.struct>",
+        "key.bodylength" : 391,
+        "key.bodyoffset" : 1914,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 313,
-        "key.name" : "Section.Columns",
-        "key.namelength" : 15,
-        "key.nameoffset" : 31631,
-        "key.offset" : 31621,
-        "key.parsed_declaration" : "fileprivate extension Section.Columns",
-        "key.parsed_scope.end" : 709,
-        "key.parsed_scope.start" : 695,
+        "key.length" : 417,
+        "key.name" : "AnyListLayout",
+        "key.namelength" : 13,
+        "key.nameoffset" : 1899,
+        "key.offset" : 1889,
+        "key.parsed_declaration" : "public extension AnyListLayout",
+        "key.parsed_scope.end" : 105,
+        "key.parsed_scope.start" : 94,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
-            "key.annotated_decl" : "func group<Value>(values: [Value<\/Type>]) -> [[Value<\/Type>]]<\/Declaration>",
-            "key.bodylength" : 224,
-            "key.bodyoffset" : 31707,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> group<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(values<\/decl.var.parameter.argument_label>: [Value<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> [[Value<\/ref.generic_type_param>]]<\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func visibleContentFrame(for collectionView: UICollectionView<\/Type>) -> CGRect<\/Type><\/Declaration>",
+            "key.bodylength" : 305,
+            "key.bodyoffset" : 1998,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> visibleContentFrame<\/decl.name>(for<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 279,
-            "key.name" : "group(values:)",
-            "key.namelength" : 30,
-            "key.nameoffset" : 31658,
-            "key.offset" : 31653,
-            "key.parsed_declaration" : "func group(values : [Value]) -> [[Value]]",
-            "key.parsed_scope.end" : 708,
-            "key.parsed_scope.start" : 697,
+            "key.length" : 385,
+            "key.name" : "visibleContentFrame(for:)",
+            "key.namelength" : 58,
+            "key.nameoffset" : 1924,
+            "key.offset" : 1919,
+            "key.parsed_declaration" : "func visibleContentFrame(for collectionView : UICollectionView) -> CGRect",
+            "key.parsed_scope.end" : 104,
+            "key.parsed_scope.start" : 96,
             "key.substructure" : [
-              {
-                "key.annotated_decl" : "Value<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
-                "key.kind" : "source.lang.swift.decl.generic_type_param",
-                "key.length" : 5,
-                "key.name" : "Value",
-                "key.namelength" : 5,
-                "key.nameoffset" : 31664,
-                "key.offset" : 31664,
-                "key.parsed_declaration" : "func groupvar values: [Value]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> values<\/decl.name>: [Value]<\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 19,
-                "key.name" : "values",
-                "key.namelength" : 6,
-                "key.nameoffset" : 31720,
-                "key.offset" : 31716,
-                "key.parsed_declaration" : "var values = values",
-                "key.parsed_scope.end" : 699,
-                "key.parsed_scope.start" : 699,
-                "key.typename" : "[Value]",
-                "key.typeusr" : "$sSayxGD",
-                "key.usr" : "s:10ListableUI7SectionV7ColumnsV5group33_F0CBB6890B9708D0D6E4B5A9172AF35FLL6valuesSaySayxGGAI_tlFAHL0_AIvp"
-              },
-              {
-                "key.annotated_decl" : "var grouped: [[Value<\/Type>]]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> grouped<\/decl.name>: [[Value<\/ref.generic_type_param>]]<\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 28,
-                "key.name" : "grouped",
-                "key.namelength" : 7,
-                "key.nameoffset" : 31757,
-                "key.offset" : 31753,
-                "key.parsed_declaration" : "var grouped : [[Value]] = []",
-                "key.parsed_scope.end" : 701,
-                "key.parsed_scope.start" : 701,
-                "key.typename" : "[[Value]]",
-                "key.typeusr" : "$sSaySayxGGD",
-                "key.usr" : "s:10ListableUI7SectionV7ColumnsV5group33_F0CBB6890B9708D0D6E4B5A9172AF35FLL6valuesSaySayxGGAI_tlF7groupedL_AJvp"
-              }
+
             ],
-            "key.typename" : " (Section.Columns) -> ([Value]) -> [[Value]]",
-            "key.typeusr" : "$s6valuesSaySayxGGAB_tcluD",
-            "key.usr" : "s:10ListableUI7SectionV7ColumnsV5group33_F0CBB6890B9708D0D6E4B5A9172AF35FLL6valuesSaySayxGGAI_tlF"
+            "key.typename" : " (Self) -> (UICollectionView) -> CGRect",
+            "key.typeusr" : "$s3forSo6CGRectVSo16UICollectionViewC_tcD",
+            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE19visibleContentFrame3forSo6CGRectVSo16UICollectionViewC_tF"
           }
         ],
-        "key.typename" : "Section.Columns.Type",
-        "key.typeusr" : "$s10ListableUI7SectionV7ColumnsVmD",
-        "key.usr" : "s:10ListableUI7SectionV7ColumnsV"
+        "key.typename" : "AnyListLayout.Protocol",
+        "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD",
+        "key.usr" : "s:10ListableUI13AnyListLayoutP"
       },
       {
-        "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
-        "key.annotated_decl" : "@frozen struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>",
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>",
         "key.attributes" : [
           {
-            "key.attribute" : "source.decl.attribute.fileprivate",
-            "key.length" : 11,
-            "key.offset" : 31937
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 2309
           }
         ],
-        "key.bodylength" : 250,
-        "key.bodyoffset" : 31966,
-        "key.doc.declaration" : "@frozen struct Array",
-        "key.doc.discussion" : [
-          {
-            "Para" : "Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the `Array` type to hold elements of a single type, the array’s `Element` type. An array can store any kind of elements—from integers to strings to classes."
-          },
-          {
-            "Para" : "Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s `Element` type. For example:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "You can create an empty array by specifying the `Element` type of your array in the declaration. For example:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "If you need an array that is preinitialized with a fixed number of default values, use the `Array(repeating:count:)` initializer."
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "When you need to perform an operation on all of an array’s elements, use a `for`-`in` loop to iterate through the array’s contents."
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "Use the `isEmpty` property to check quickly whether an array has any elements, or use the `count` property to find the number of elements in the array."
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "Use the `first` and `last` properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are `nil`."
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than `count` triggers a runtime error. For example:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class."
-          },
-          {
-            "CodeListing" : ""
-          },
+        "key.bodylength" : 3390,
+        "key.bodyoffset" : 2341,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 3416,
+        "key.name" : "AnyListLayout",
+        "key.namelength" : 13,
+        "key.nameoffset" : 2326,
+        "key.offset" : 2316,
+        "key.parsed_declaration" : "public extension AnyListLayout",
+        "key.parsed_scope.end" : 200,
+        "key.parsed_scope.start" : 108,
+        "key.substructure" : [
           {
-            "Para" : "To add single elements to the end of an array, use the `append(_:)` method. Add multiple elements at the same time by passing another array or a sequence of any kind to the `append(contentsOf:)` method."
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func positionStickySectionHeadersIfNeeded(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
+            "key.bodylength" : 817,
+            "key.bodyoffset" : 2431,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> positionStickySectionHeadersIfNeeded<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 903,
+            "key.name" : "positionStickySectionHeadersIfNeeded(in:)",
+            "key.namelength" : 74,
+            "key.nameoffset" : 2351,
+            "key.offset" : 2346,
+            "key.parsed_declaration" : "func positionStickySectionHeadersIfNeeded(in collectionView : UICollectionView)",
+            "key.parsed_scope.end" : 135,
+            "key.parsed_scope.start" : 110,
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "let visibleContentFrame: CGRect<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleContentFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 71,
+                "key.name" : "visibleContentFrame",
+                "key.namelength" : 19,
+                "key.nameoffset" : 2529,
+                "key.offset" : 2525,
+                "key.parsed_declaration" : "let visibleContentFrame = self.visibleContentFrame(for: collectionView)",
+                "key.parsed_scope.end" : 116,
+                "key.parsed_scope.start" : 116,
+                "key.related_decls" : [
+                  {
+                    "key.annotated_decl" : "visibleContentFrame(for:)<\/RelatedName>"
+                  }
+                ],
+                "key.typename" : "CGRect",
+                "key.typeusr" : "$sSo6CGRectVD",
+                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE36positionStickySectionHeadersIfNeeded2inySo16UICollectionViewC_tF19visibleContentFrameL_So6CGRectVvp"
+              }
+            ],
+            "key.typename" : " (Self) -> (UICollectionView) -> ()",
+            "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
+            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE36positionStickySectionHeadersIfNeeded2inySo16UICollectionViewC_tF"
           },
           {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "You can add new elements in the middle of an array by using the `insert(_:at:)` method for single elements and by using `insert(contentsOf:at:)` to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room."
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "To remove elements from an array, use the `remove(at:)`, `removeSubrange(_:)`, and `removeLast()` methods."
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "You can replace an existing element with a new value by assigning the new value to the subscript."
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger."
-          },
-          {
-            "Para" : "If you know approximately how many elements you will need to store, use the `reserveCapacity(_:)` method before appending to the array to avoid intermediate reallocations. Use the `capacity` and `count` properties to determine how many more elements the array can store without allocating larger storage."
-          },
-          {
-            "Para" : "For arrays of most `Element` types, this storage is a contiguous block of memory. For arrays with an `Element` type that is a class or `@objc` protocol type, this storage can be a contiguous block of memory or an instance of `NSArray`. Because any arbitrary subclass of `NSArray` can become an `Array`, there are no guarantees about representation or efficiency in this case."
-          },
-          {
-            "Para" : "Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying."
-          },
-          {
-            "Para" : "This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place."
-          },
-          {
-            "Para" : "In the example below, a `numbers` array is created along with two copies that share the same storage. When the original `numbers` array is modified, it makes a unique copy of its storage before making the modification. Further modifications to `numbers` are made in place, while the two copies continue to share the original storage."
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "When you need to access APIs that require data in an `NSArray` instance instead of `Array`, use the type-cast operator (`as`) to bridge your instance. For bridging to be possible, the `Element` type of your array must be a class, an `@objc` protocol (a protocol imported from Objective-C or marked with the `@objc` attribute), or a type that bridges to a Foundation type."
-          },
-          {
-            "Para" : "The following example shows how you can bridge an `Array` instance to `NSArray` to use the `write(to:atomically:)` method. In this example, the `colors` array can be bridged to `NSArray` because the `colors` array’s `String` elements bridge to `NSString`. The compiler prevents bridging the `moreColors` array, on the other hand, because its `Element` type is `Optional`, which does  bridge to a Foundation type."
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "Bridging from `Array` to `NSArray` takes O(1) time and O(1) space if the array’s elements are already instances of a class or an `@objc` protocol; otherwise, it takes O() time and space."
-          },
-          {
-            "Para" : "When the destination array’s element type is a class or an `@objc` protocol, bridging from `NSArray` to `Array` first calls the `copy(with:)` (`- copyWithZone:` in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of `NSArray` that are already immutable, `copy(with:)` usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If `copy(with:)` returns the same array, the instances of `NSArray` and `Array` share storage using the same copy-on-write optimization that is used when two instances of `Array` share storage."
-          },
-          {
-            "Para" : "When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from `NSArray` to `Array` performs a bridging copy of the elements to contiguous storage in O() time. For example, bridging from `NSArray` to `Array` performs such a copy. No further bridging is required when accessing elements of the `Array` instance."
-          },
-          {
-            "Note" : ""
-          }
-        ],
-        "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element><\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.name" : "Array",
-        "key.doc.type" : "Class",
-        "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>",
-        "key.groupname" : "Collection\/Array",
-        "key.is_system" : true,
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 268,
-        "key.modulename" : "Swift",
-        "key.name" : "Array",
-        "key.namelength" : 5,
-        "key.nameoffset" : 31959,
-        "key.offset" : 31949,
-        "key.parsed_declaration" : "fileprivate extension Array",
-        "key.parsed_scope.end" : 723,
-        "key.parsed_scope.start" : 712,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
-            "key.annotated_decl" : "mutating func safeDropFirst(_ count: Int<\/Type>) -> [Element<\/Type>]<\/Declaration>",
-            "key.attributes" : [
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func updateOverscrollFooterPosition(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
+            "key.bodylength" : 903,
+            "key.bodyoffset" : 3338,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateOverscrollFooterPosition<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 983,
+            "key.name" : "updateOverscrollFooterPosition(in:)",
+            "key.namelength" : 68,
+            "key.nameoffset" : 3264,
+            "key.offset" : 3259,
+            "key.parsed_declaration" : "func updateOverscrollFooterPosition(in collectionView : UICollectionView)",
+            "key.parsed_scope.end" : 157,
+            "key.parsed_scope.start" : 137,
+            "key.substructure" : [
               {
-                "key.attribute" : "source.decl.attribute.mutating",
-                "key.length" : 8,
-                "key.offset" : 31971
+                "key.annotated_decl" : "let footer: ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> footer<\/decl.name>: ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 42,
+                "key.name" : "footer",
+                "key.namelength" : 6,
+                "key.nameoffset" : 3500,
+                "key.offset" : 3496,
+                "key.parsed_declaration" : "let footer = self.content.overscrollFooter",
+                "key.parsed_scope.end" : 144,
+                "key.parsed_scope.start" : 144,
+                "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
+                "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
+                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF6footerL_AA0dE7ContentC21SupplementaryItemInfoCvp"
+              },
+              {
+                "key.annotated_decl" : "let contentHeight: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 51,
+                "key.name" : "contentHeight",
+                "key.namelength" : 13,
+                "key.nameoffset" : 3568,
+                "key.offset" : 3564,
+                "key.parsed_declaration" : "let contentHeight = self.content.contentSize.height",
+                "key.parsed_scope.end" : 146,
+                "key.parsed_scope.start" : 146,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF13contentHeightL_12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.annotated_decl" : "let viewHeight: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 56,
+                "key.name" : "viewHeight",
+                "key.namelength" : 10,
+                "key.nameoffset" : 3628,
+                "key.offset" : 3624,
+                "key.parsed_declaration" : "let viewHeight = collectionView.contentFrame.size.height",
+                "key.parsed_scope.end" : 147,
+                "key.parsed_scope.start" : 147,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF10viewHeightL_12CoreGraphics7CGFloatVvp"
               }
             ],
-            "key.bodylength" : 182,
-            "key.bodyoffset" : 32032,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> safeDropFirst<\/decl.name>(_<\/decl.var.parameter.argument_label> count<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Element<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.groupname" : "Collection\/Array",
+            "key.typename" : " (Self) -> (UICollectionView) -> ()",
+            "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
+            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "func adjustPositionsForLayoutUnderflow(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
+            "key.bodylength" : 1395,
+            "key.bodyoffset" : 4334,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> adjustPositionsForLayoutUnderflow<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 235,
-            "key.name" : "safeDropFirst(_:)",
-            "key.namelength" : 28,
-            "key.nameoffset" : 31985,
-            "key.offset" : 31980,
-            "key.parsed_declaration" : "mutating func safeDropFirst(_ count : Int) -> [Element]",
-            "key.parsed_scope.end" : 722,
-            "key.parsed_scope.start" : 714,
+            "key.length" : 1478,
+            "key.name" : "adjustPositionsForLayoutUnderflow(in:)",
+            "key.namelength" : 71,
+            "key.nameoffset" : 4257,
+            "key.offset" : 4252,
+            "key.parsed_declaration" : "func adjustPositionsForLayoutUnderflow(in collectionView : UICollectionView)",
+            "key.parsed_scope.end" : 199,
+            "key.parsed_scope.start" : 159,
             "key.substructure" : [
               {
-                "key.annotated_decl" : "let safeCount: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.groupname" : "Collection\/Array",
+                "key.annotated_decl" : "let safeAreaInsets: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 44,
-                "key.name" : "safeCount",
-                "key.namelength" : 9,
-                "key.nameoffset" : 32045,
-                "key.offset" : 32041,
-                "key.parsed_declaration" : "let safeCount = Swift.min(self.count, count)",
-                "key.parsed_scope.end" : 716,
-                "key.parsed_scope.start" : 716,
-                "key.typename" : "Int",
-                "key.typeusr" : "$sSiD",
-                "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_F0CBB6890B9708D0D6E4B5A9172AF35FLLySayxGSiF0C5CountL_Sivp"
+                "key.length" : 312,
+                "key.name" : "safeAreaInsets",
+                "key.namelength" : 14,
+                "key.nameoffset" : 4607,
+                "key.offset" : 4603,
+                "key.parsed_declaration" : "let safeAreaInsets : CGFloat = {\n    switch self.direction {\n    case .vertical: return collectionView.safeAreaInsets.top + collectionView.safeAreaInsets.bottom\n    case .horizontal: return collectionView.safeAreaInsets.left + collectionView.safeAreaInsets.right\n    }\n}()",
+                "key.parsed_scope.end" : 168,
+                "key.parsed_scope.start" : 168,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF14safeAreaInsetsL_12CoreGraphics7CGFloatVvp"
               },
               {
-                "key.annotated_decl" : "let values: ArraySlice<\/Type><Element><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> values<\/decl.name>: ArraySlice<\/ref.struct><Element><\/decl.var.type><\/decl.var.local>",
-                "key.groupname" : "Collection\/Array",
+                "key.annotated_decl" : "let contentHeight: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 32,
-                "key.name" : "values",
-                "key.namelength" : 6,
-                "key.nameoffset" : 32098,
-                "key.offset" : 32094,
-                "key.parsed_declaration" : "let values = self[0..",
-                "key.typeusr" : "$ss10ArraySliceVyxGD",
-                "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_F0CBB6890B9708D0D6E4B5A9172AF35FLLySayxGSiF6valuesL_s10ArraySliceVyxGvp"
+                "key.length" : 51,
+                "key.name" : "contentHeight",
+                "key.namelength" : 13,
+                "key.nameoffset" : 4937,
+                "key.offset" : 4933,
+                "key.parsed_declaration" : "let contentHeight = self.content.contentSize.height",
+                "key.parsed_scope.end" : 175,
+                "key.parsed_scope.start" : 175,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF13contentHeightL_12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.annotated_decl" : "let viewHeight: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 45,
+                "key.name" : "viewHeight",
+                "key.namelength" : 10,
+                "key.nameoffset" : 4997,
+                "key.offset" : 4993,
+                "key.parsed_declaration" : "let viewHeight = collectionView.bounds.height",
+                "key.parsed_scope.end" : 176,
+                "key.parsed_scope.start" : 176,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF10viewHeightL_12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.annotated_decl" : "let additionalOffset: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> additionalOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 171,
+                "key.name" : "additionalOffset",
+                "key.namelength" : 16,
+                "key.nameoffset" : 5060,
+                "key.offset" : 5056,
+                "key.parsed_declaration" : "let additionalOffset = self.behavior.underflow.alignment.offsetFor(\n    contentHeight: contentHeight,\n    viewHeight: viewHeight - safeAreaInsets\n)",
+                "key.parsed_scope.end" : 178,
+                "key.parsed_scope.start" : 178,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF16additionalOffsetL_12CoreGraphics7CGFloatVvp"
               }
             ],
-            "key.typename" : " (inout Array) -> (Int) -> [Element]",
-            "key.typeusr" : "$sySayxGSicD",
-            "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_F0CBB6890B9708D0D6E4B5A9172AF35FLLySayxGSiF"
+            "key.typename" : " (Self) -> (UICollectionView) -> ()",
+            "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
+            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF"
           }
         ],
-        "key.typename" : "Array.Type",
-        "key.typeusr" : "$sSayxGmD",
-        "key.usr" : "s:Sa"
-      },
+        "key.typename" : "AnyListLayout.Protocol",
+        "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD",
+        "key.usr" : "s:10ListableUI13AnyListLayoutP"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 309,
+    "key.offset" : 0,
+    "key.substructure" : [
       {
-        "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
-        "key.annotated_decl" : "fileprivate func performLayout<Input>(for input: Input<\/Type>, _ block: (Input<\/Type>) -> ())<\/Declaration>",
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol ListLayoutAppearance : Equatable<\/Type><\/Declaration>",
         "key.attributes" : [
           {
-            "key.attribute" : "source.decl.attribute.fileprivate",
-            "key.length" : 11,
-            "key.offset" : 32220
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 118
           }
         ],
-        "key.bodylength" : 18,
-        "key.bodyoffset" : 32303,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-        "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performLayout<\/decl.name><Input<\/decl.generic_type_param.name><\/decl.generic_type_param>>(for<\/decl.var.parameter.argument_label> input<\/decl.var.parameter.name>: Input<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Input<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.free>",
-        "key.kind" : "source.lang.swift.decl.function.free",
-        "key.length" : 90,
-        "key.name" : "performLayout(for:_:)",
-        "key.namelength" : 64,
-        "key.nameoffset" : 32237,
-        "key.offset" : 32232,
-        "key.parsed_declaration" : "fileprivate func performLayout(for input : Input, _ block : (Input) -> ())",
-        "key.parsed_scope.end" : 729,
-        "key.parsed_scope.start" : 726,
+        "key.bodylength" : 139,
+        "key.bodyoffset" : 168,
+        "key.elements" : [
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 9,
+            "key.offset" : 157
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayoutAppearance<\/decl.name> : Equatable<\/ref.protocol><\/decl.protocol>",
+        "key.inheritedtypes" : [
+          {
+            "key.name" : "Equatable"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.protocol",
+        "key.length" : 183,
+        "key.name" : "ListLayoutAppearance",
+        "key.namelength" : 20,
+        "key.nameoffset" : 134,
+        "key.offset" : 125,
+        "key.parsed_declaration" : "public protocol ListLayoutAppearance : Equatable",
+        "key.parsed_scope.end" : 18,
+        "key.parsed_scope.start" : 11,
         "key.substructure" : [
           {
-            "key.annotated_decl" : "Input<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/List\/DefaultListLayout.swift",
-            "key.fully_annotated_decl" : "Input<\/decl.generic_type_param.name><\/decl.generic_type_param>",
-            "key.kind" : "source.lang.swift.decl.generic_type_param",
-            "key.length" : 5,
-            "key.name" : "Input",
-            "key.namelength" : 5,
-            "key.nameoffset" : 32251,
-            "key.offset" : 32251,
-            "key.parsed_declaration" : "fileprivate func performLayoutstatic var `default`: Self<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 202,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+            "key.kind" : "source.lang.swift.decl.var.static",
+            "key.length" : 35,
+            "key.name" : "default",
+            "key.namelength" : 7,
+            "key.nameoffset" : 184,
+            "key.offset" : 173,
+            "key.parsed_declaration" : "static var `default` : Self",
+            "key.parsed_scope.end" : 13,
+            "key.parsed_scope.start" : 13,
+            "key.typename" : "Self",
+            "key.typeusr" : "$sxD",
+            "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var direction: LayoutDirection<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 251,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 39,
+            "key.name" : "direction",
+            "key.namelength" : 9,
+            "key.nameoffset" : 222,
+            "key.offset" : 218,
+            "key.parsed_declaration" : "var direction : LayoutDirection",
+            "key.parsed_scope.end" : 15,
+            "key.parsed_scope.start" : 15,
+            "key.typename" : "LayoutDirection",
+            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
+            "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "var stickySectionHeaders: Bool<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 300,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 39,
+            "key.name" : "stickySectionHeaders",
+            "key.namelength" : 20,
+            "key.nameoffset" : 271,
+            "key.offset" : 267,
+            "key.parsed_declaration" : "var stickySectionHeaders : Bool",
+            "key.parsed_scope.end" : 17,
+            "key.parsed_scope.start" : 17,
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp"
           }
         ],
-        "key.typename" : " (for: Input, (Input) -> ()) -> ()",
-        "key.typeusr" : "$s3for_yx_yxXEtcluD",
-        "key.usr" : "s:10ListableUI13performLayout33_F0CBB6890B9708D0D6E4B5A9172AF35FLL3for_yx_yxXEtlF"
+        "key.typename" : "ListLayoutAppearance.Protocol",
+        "key.typeusr" : "$s10ListableUI20ListLayoutAppearance_pmD",
+        "key.usr" : "s:10ListableUI20ListLayoutAppearanceP"
       }
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 4622,
+    "key.length" : 862,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct LayoutDescription<\/Declaration>",
+        "key.annotated_decl" : "public struct ListLayoutAttributes : Equatable<\/Type><\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 1128
+            "key.offset" : 117
           }
         ],
-        "key.bodylength" : 459,
-        "key.bodyoffset" : 1161,
-        "key.doc.column" : 15,
-        "key.doc.comment" : "\nA `LayoutDescription`, well, describes the type of and properties of a layout to apply to a list view.\n\nYou use a `LayoutDescription` by passing a closure to its initializer, which you use to\ncustomize the `layoutAppearance` of the provided list type.\n\nFor example, to use a standard list layout, and customize the layout, your code would look something like this:\n\n```\nlistView.layout = .list {\n    $0.stickySectionHeaders = true\n\n    $0.layout.padding = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)\n    $0.layout.itemSpacing = 10.0\n}\n```\n\nOr a layout for your own custom layout type would look somewhat like this:\n\n```\nMyCustomLayout.describe {\n    $0.myLayoutOption = true\n    $0.anotherLayoutOption = .polkadots\n}\n```\n\nNote\n----\nUnder the hood, Listable is smart, and will only re-create the underlying\nlayout object when needed (when the layout type or layout appearance changes).",
-        "key.doc.declaration" : "public struct LayoutDescription",
-        "key.doc.discussion" : [
+        "key.bodylength" : 525,
+        "key.bodyoffset" : 165,
+        "key.elements" : [
           {
-            "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type."
-          },
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 9,
+            "key.offset" : 154
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
+        "key.inheritedtypes" : [
           {
-            "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:"
-          },
+            "key.name" : "Equatable"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 567,
+        "key.name" : "ListLayoutAttributes",
+        "key.namelength" : 20,
+        "key.nameoffset" : 131,
+        "key.offset" : 124,
+        "key.parsed_declaration" : "public struct ListLayoutAttributes : Equatable",
+        "key.parsed_scope.end" : 36,
+        "key.parsed_scope.start" : 11,
+        "key.substructure" : [
           {
-            "CodeListing" : ""
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var contentSize: CGSize<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 24,
+            "key.name" : "contentSize",
+            "key.namelength" : 11,
+            "key.nameoffset" : 179,
+            "key.offset" : 175,
+            "key.parsed_declaration" : "var contentSize : CGSize",
+            "key.parsed_scope.end" : 13,
+            "key.parsed_scope.start" : 13,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "CGSize",
+            "key.typeusr" : "$sSo6CGSizeVD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV11contentSizeSo6CGSizeVvp"
           },
           {
-            "Para" : "Or a layout for your own custom layout type would look somewhat like this:"
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var header: Supplementary<\/Type>?<\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> header<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 27,
+            "key.name" : "header",
+            "key.namelength" : 6,
+            "key.nameoffset" : 213,
+            "key.offset" : 209,
+            "key.parsed_declaration" : "var header : Supplementary?",
+            "key.parsed_scope.end" : 15,
+            "key.parsed_scope.start" : 15,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "ListLayoutAttributes.Supplementary?",
+            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV6headerAC13SupplementaryVSgvp"
           },
           {
-            "CodeListing" : ""
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var footer: Supplementary<\/Type>?<\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> footer<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 27,
+            "key.name" : "footer",
+            "key.namelength" : 6,
+            "key.nameoffset" : 245,
+            "key.offset" : 241,
+            "key.parsed_declaration" : "var footer : Supplementary?",
+            "key.parsed_scope.end" : 16,
+            "key.parsed_scope.start" : 16,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "ListLayoutAttributes.Supplementary?",
+            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV6footerAC13SupplementaryVSgvp"
           },
-          {
-            "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)."
-          }
-        ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 42,
-        "key.doc.name" : "LayoutDescription",
-        "key.doc.type" : "Class",
-        "key.doclength" : 1013,
-        "key.docoffset" : 115,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 486,
-        "key.name" : "LayoutDescription",
-        "key.namelength" : 17,
-        "key.nameoffset" : 1142,
-        "key.offset" : 1135,
-        "key.parsed_declaration" : "public struct LayoutDescription",
-        "key.parsed_scope.end" : 53,
-        "key.parsed_scope.start" : 42,
-        "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let configuration: AnyLayoutDescriptionConfiguration<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> configuration<\/decl.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
+            "key.annotated_decl" : "var overscrollFooter: Supplementary<\/Type>?<\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 53,
-            "key.name" : "configuration",
-            "key.namelength" : 13,
-            "key.nameoffset" : 1170,
-            "key.offset" : 1166,
-            "key.parsed_declaration" : "let configuration : AnyLayoutDescriptionConfiguration",
-            "key.parsed_scope.end" : 44,
-            "key.parsed_scope.start" : 44,
-            "key.typename" : "AnyLayoutDescriptionConfiguration",
-            "key.typeusr" : "$s10ListableUI33AnyLayoutDescriptionConfiguration_pD",
-            "key.usr" : "s:10ListableUI17LayoutDescriptionV13configurationAA03AnycD13Configuration_pvp"
+            "key.length" : 37,
+            "key.name" : "overscrollFooter",
+            "key.namelength" : 16,
+            "key.nameoffset" : 277,
+            "key.offset" : 273,
+            "key.parsed_declaration" : "var overscrollFooter : Supplementary?",
+            "key.parsed_scope.end" : 17,
+            "key.parsed_scope.start" : 17,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "ListLayoutAttributes.Supplementary?",
+            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV16overscrollFooterAC13SupplementaryVSgvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init<LayoutType>(layoutType: LayoutType<\/Type>.Type, appearance configure: @escaping (inout LayoutType<\/Type>.LayoutAppearance<\/Type>) -> () = { _ in }) where LayoutType : ListLayout<\/Type><\/Declaration>",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var sections: [Section<\/Type>]<\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sections<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 24,
+            "key.name" : "sections",
+            "key.namelength" : 8,
+            "key.nameoffset" : 324,
+            "key.offset" : 320,
+            "key.parsed_declaration" : "var sections : [Section]",
+            "key.parsed_scope.end" : 19,
+            "key.parsed_scope.start" : 19,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "[ListLayoutAttributes.Section]",
+            "key.typeusr" : "$sSay10ListableUI20ListLayoutAttributesV7SectionVGD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV8sectionsSayAC7SectionVGvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public struct ListLayoutAttributes<\/Type>.Section : Equatable<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1349
-              }
-            ],
-            "key.bodylength" : 94,
-            "key.bodyoffset" : 1524,
-            "key.doc.column" : 12,
-            "key.doc.comment" : "Creates a new layout description for the provided layout type, with the provided optional layout configuration.",
-            "key.doc.declaration" : "public init(layoutType: LayoutType.Type, appearance configure: @escaping (inout LayoutType.LayoutAppearance) -> () = { _ in }) where LayoutType : ListableUI.ListLayout",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.doc.full_as_xml" : "init(layoutType:appearance:)<\/Name>s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzctcAA04ListC0Rzlufc<\/USR>public init<LayoutType>(layoutType: LayoutType.Type, appearance configure: @escaping (inout LayoutType.LayoutAppearance) -> () = { _ in }) where LayoutType : ListableUI.ListLayout<\/Declaration>Creates a new layout description for the provided layout type, with the provided optional layout configuration.<\/Para><\/Abstract><\/CommentParts><\/Function>",
-            "key.doc.line" : 47,
-            "key.doc.name" : "init(layoutType:appearance:)",
-            "key.doc.type" : "Function",
-            "key.doclength" : 116,
-            "key.docoffset" : 1229,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><LayoutType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(layoutType<\/decl.var.parameter.argument_label>: LayoutType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> LayoutType<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> LayoutType : ListLayout<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 263,
-            "key.name" : "init(layoutType:appearance:)",
-            "key.namelength" : 166,
-            "key.nameoffset" : 1356,
-            "key.offset" : 1356,
-            "key.parsed_declaration" : "public init(\n    layoutType : LayoutType.Type,\n    appearance configure : @escaping (inout LayoutType.LayoutAppearance) -> () = { _ in }\n)",
-            "key.parsed_scope.end" : 52,
-            "key.parsed_scope.start" : 47,
-            "key.substructure" : [
-              {
-                "key.annotated_decl" : "LayoutType : ListLayout<\/Type><\/Declaration>",
-                "key.elements" : [
-                  {
-                    "key.kind" : "source.lang.swift.structure.elem.typeref",
-                    "key.length" : 10,
-                    "key.offset" : 1372
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                "key.fully_annotated_decl" : "LayoutType<\/decl.generic_type_param.name> : ListLayout<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
-                "key.inheritedtypes" : [
-                  {
-                    "key.name" : "ListLayout"
-                  }
-                ],
-                "key.kind" : "source.lang.swift.decl.generic_type_param",
-                "key.length" : 21,
-                "key.name" : "LayoutType",
-                "key.namelength" : 10,
-                "key.nameoffset" : 1361,
-                "key.offset" : 1361,
-                "key.parsed_declaration" : "public init (LayoutDescription.Type) -> (LayoutType.Type, @escaping (inout LayoutType.LayoutAppearance) -> ()) -> LayoutDescription",
-            "key.typeusr" : "$s10layoutType10appearance10ListableUI17LayoutDescriptionVxm_y0F10AppearanceQzzctcAC04ListF0RzluD",
-            "key.usr" : "s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzctcAA04ListC0Rzlufc"
-          }
-        ],
-        "key.typename" : "LayoutDescription.Type",
-        "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD",
-        "key.usr" : "s:10ListableUI17LayoutDescriptionV"
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 1624
-          }
-        ],
-        "key.bodylength" : 367,
-        "key.bodyoffset" : 1653,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 390,
-        "key.name" : "ListLayout",
-        "key.namelength" : 10,
-        "key.nameoffset" : 1641,
-        "key.offset" : 1631,
-        "key.parsed_declaration" : "public extension ListLayout",
-        "key.parsed_scope.end" : 68,
-        "key.parsed_scope.start" : 56,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "static func describe(appearance: @escaping (inout Self<\/Type>.LayoutAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>",
-            "key.bodylength" : 119,
-            "key.bodyoffset" : 1899,
-            "key.doc.column" : 17,
-            "key.doc.comment" : "Creates a new layout description for a list layout, with the provided optional layout configuration.",
-            "key.doc.declaration" : "static func describe(appearance: @escaping (inout Self.LayoutAppearance) -> () = { _ in }) -> LayoutDescription",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.doc.full_as_xml" : "describe(appearance:)<\/Name>s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzc_tFZ<\/USR>static func describe(appearance: @escaping (inout Self.LayoutAppearance) -> () = { _ in }) -> LayoutDescription<\/Declaration>Creates a new layout description for a list layout, with the provided optional layout configuration.<\/Para><\/Abstract><\/CommentParts><\/Function>",
-            "key.doc.line" : 59,
-            "key.doc.name" : "describe(appearance:)",
-            "key.doc.type" : "Function",
-            "key.doclength" : 105,
-            "key.docoffset" : 1658,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> describe<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> Self<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
-            "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 252,
-            "key.name" : "describe(appearance:)",
-            "key.namelength" : 93,
-            "key.nameoffset" : 1779,
-            "key.offset" : 1767,
-            "key.parsed_declaration" : "static func describe(\n    appearance : @escaping (inout Self.LayoutAppearance) -> () = { _ in }\n) -> LayoutDescription",
-            "key.parsed_scope.end" : 67,
-            "key.parsed_scope.start" : 59,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : " (Self.Type) -> (@escaping (inout Self.LayoutAppearance) -> ()) -> LayoutDescription",
-            "key.typeusr" : "$s10appearance10ListableUI17LayoutDescriptionVy0D10AppearanceQzzc_tcD",
-            "key.usr" : "s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzc_tFZ"
-          }
-        ],
-        "key.typename" : "ListLayout.Protocol",
-        "key.typeusr" : "$s10ListableUI10ListLayout_pmD",
-        "key.usr" : "s:10ListableUI10ListLayoutP"
-      },
-      {
-        "key.annotated_decl" : "public struct LayoutDescription<\/Declaration>",
-        "key.bodylength" : 2080,
-        "key.bodyoffset" : 2053,
-        "key.doc.column" : 15,
-        "key.doc.declaration" : "public struct LayoutDescription",
-        "key.doc.discussion" : [
-          {
-            "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type."
-          },
-          {
-            "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "Or a layout for your own custom layout type would look somewhat like this:"
-          },
-          {
-            "CodeListing" : ""
-          },
-          {
-            "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)."
-          }
-        ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 42,
-        "key.doc.name" : "LayoutDescription",
-        "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 2110,
-        "key.name" : "LayoutDescription",
-        "key.namelength" : 17,
-        "key.nameoffset" : 2034,
-        "key.offset" : 2024,
-        "key.parsed_declaration" : "extension LayoutDescription",
-        "key.parsed_scope.end" : 137,
-        "key.parsed_scope.start" : 71,
-        "key.substructure" : [
-          {
-            "key.annotated_decl" : "struct Configuration<LayoutType> : AnyLayoutDescriptionConfiguration<\/Type> where LayoutType : ListLayout<\/Type><\/Declaration>",
-            "key.bodylength" : 1988,
-            "key.bodyoffset" : 2143,
+            "key.bodylength" : 140,
+            "key.bodyoffset" : 389,
             "key.elements" : [
               {
                 "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 33,
-                "key.offset" : 2104
+                "key.length" : 9,
+                "key.offset" : 378
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Configuration<\/decl.name><LayoutType<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyLayoutDescriptionConfiguration<\/ref.protocol> where<\/syntaxtype.keyword> LayoutType : ListLayout<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/ref.struct>.Section<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
-                "key.name" : "AnyLayoutDescriptionConfiguration"
+                "key.name" : "Equatable"
               }
             ],
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 2074,
-            "key.name" : "Configuration",
-            "key.namelength" : 13,
-            "key.nameoffset" : 2065,
-            "key.offset" : 2058,
-            "key.parsed_declaration" : "struct Configuration : AnyLayoutDescriptionConfiguration",
-            "key.parsed_scope.end" : 136,
-            "key.parsed_scope.start" : 73,
+            "key.length" : 169,
+            "key.name" : "Section",
+            "key.namelength" : 7,
+            "key.nameoffset" : 368,
+            "key.offset" : 361,
+            "key.parsed_declaration" : "public struct Section : Equatable",
+            "key.parsed_scope.end" : 27,
+            "key.parsed_scope.start" : 21,
             "key.substructure" : [
-              {
-                "key.annotated_decl" : "LayoutType : ListLayout<\/Type><\/Declaration>",
-                "key.elements" : [
-                  {
-                    "key.kind" : "source.lang.swift.structure.elem.typeref",
-                    "key.length" : 10,
-                    "key.offset" : 2090
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                "key.fully_annotated_decl" : "LayoutType<\/decl.generic_type_param.name> : ListLayout<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
-                "key.inheritedtypes" : [
-                  {
-                    "key.name" : "ListLayout"
-                  }
-                ],
-                "key.kind" : "source.lang.swift.decl.generic_type_param",
-                "key.length" : 21,
-                "key.name" : "LayoutType",
-                "key.namelength" : 10,
-                "key.nameoffset" : 2079,
-                "key.offset" : 2079,
-                "key.parsed_declaration" : "struct Configurationlet layoutType: LayoutType<\/Type>.Type<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layoutType<\/decl.name>: LayoutType<\/ref.generic_type_param>.Type<\/decl.var.type><\/decl.var.instance>",
+                "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 32,
-                "key.name" : "layoutType",
-                "key.namelength" : 10,
-                "key.nameoffset" : 2156,
-                "key.offset" : 2152,
-                "key.parsed_declaration" : "let layoutType : LayoutType.Type",
-                "key.parsed_scope.end" : 75,
-                "key.parsed_scope.start" : 75,
-                "key.typename" : "LayoutType.Type",
-                "key.typeusr" : "$sxmD",
-                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV10layoutTypexmvp"
+                "key.length" : 18,
+                "key.name" : "frame",
+                "key.namelength" : 5,
+                "key.nameoffset" : 402,
+                "key.offset" : 398,
+                "key.parsed_declaration" : "var frame : CGRect",
+                "key.parsed_scope.end" : 22,
+                "key.parsed_scope.start" : 22,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "CGRect",
+                "key.typeusr" : "$sSo6CGRectVD",
+                "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV5frameSo6CGRectVvp"
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let configure: (inout LayoutType<\/Type>.LayoutAppearance<\/Type>) -> ()<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> configure<\/decl.name>: (inout<\/syntaxtype.keyword> LayoutType<\/ref.generic_type_param>.LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
+                "key.annotated_decl" : "var header: Supplementary<\/Type>?<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> header<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 57,
-                "key.name" : "configure",
-                "key.namelength" : 9,
-                "key.nameoffset" : 2206,
-                "key.offset" : 2202,
-                "key.parsed_declaration" : "let configure : (inout LayoutType.LayoutAppearance) -> ()",
-                "key.parsed_scope.end" : 77,
-                "key.parsed_scope.start" : 77,
-                "key.typename" : "(inout LayoutType.LayoutAppearance) -> ()",
-                "key.typeusr" : "$syy16LayoutAppearance10ListableUI04ListA0PQzzcD",
-                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV9configureyy0C10AppearanceQzzcvp"
+                "key.length" : 27,
+                "key.name" : "header",
+                "key.namelength" : 6,
+                "key.nameoffset" : 438,
+                "key.offset" : 434,
+                "key.parsed_declaration" : "var header : Supplementary?",
+                "key.parsed_scope.end" : 24,
+                "key.parsed_scope.start" : 24,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "ListLayoutAttributes.Supplementary?",
+                "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
+                "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV6headerAC13SupplementaryVSgvp"
               },
               {
-                "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-                "key.length" : 39,
-                "key.name" : "MARK: AnyLayoutDescriptionConfiguration",
-                "key.namelength" : 0,
-                "key.nameoffset" : 0,
-                "key.offset" : 2280
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var footer: Supplementary<\/Type>?<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> footer<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 27,
+                "key.name" : "footer",
+                "key.namelength" : 6,
+                "key.nameoffset" : 474,
+                "key.offset" : 470,
+                "key.parsed_declaration" : "var footer : Supplementary?",
+                "key.parsed_scope.end" : 25,
+                "key.parsed_scope.start" : 25,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "ListLayoutAttributes.Supplementary?",
+                "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
+                "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV6footerAC13SupplementaryVSgvp"
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "func createEmptyLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>) -> AnyListLayout<\/Type><\/Declaration>",
-                "key.bodylength" : 345,
-                "key.bodyoffset" : 2465,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> createEmptyLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 474,
-                "key.name" : "createEmptyLayout(appearance:behavior:)",
-                "key.namelength" : 96,
-                "key.nameoffset" : 2342,
-                "key.offset" : 2337,
-                "key.overrides" : [
-                  {
-                    "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF"
-                  }
-                ],
-                "key.parsed_declaration" : "func createEmptyLayout(\n    appearance : Appearance,\n    behavior: Behavior\n) -> AnyListLayout",
-                "key.parsed_scope.end" : 95,
-                "key.parsed_scope.start" : 81,
-                "key.substructure" : [
-                  {
-                    "key.annotated_decl" : "var layoutAppearance: LayoutType.LayoutAppearance<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: LayoutType.LayoutAppearance<\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 58,
-                    "key.name" : "layoutAppearance",
-                    "key.namelength" : 16,
-                    "key.nameoffset" : 2482,
-                    "key.offset" : 2478,
-                    "key.parsed_declaration" : "var layoutAppearance = LayoutType.LayoutAppearance.default",
-                    "key.parsed_scope.end" : 86,
-                    "key.parsed_scope.start" : 86,
-                    "key.typename" : "LayoutType.LayoutAppearance",
-                    "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
-                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV011createEmptyC010appearance8behaviorAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVtF06layoutL0L_0cL0Qzvp"
-                  }
-                ],
-                "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior) -> AnyListLayout",
-                "key.typeusr" : "$s10appearance8behavior10ListableUI13AnyListLayout_pAC10AppearanceV_AC8BehaviorVtcD",
-                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV011createEmptyC010appearance8behaviorAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVtF"
-              },
+                "key.annotated_decl" : "var items: [Item<\/Type>]<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [Item<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 18,
+                "key.name" : "items",
+                "key.namelength" : 5,
+                "key.nameoffset" : 510,
+                "key.offset" : 506,
+                "key.parsed_declaration" : "var items : [Item]",
+                "key.parsed_scope.end" : 26,
+                "key.parsed_scope.start" : 26,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "[ListLayoutAttributes.Item]",
+                "key.typeusr" : "$sSay10ListableUI20ListLayoutAttributesV4ItemVGD",
+                "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV5itemsSayAC4ItemVGvp"
+              }
+            ],
+            "key.typename" : "ListLayoutAttributes.Section.Type",
+            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV7SectionVmD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public struct ListLayoutAttributes<\/Type>.Supplementary : Equatable<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public func createPopulatedLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, delegate: CollectionViewLayoutDelegate<\/Type>) -> AnyListLayout<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 2829
-                  }
-                ],
-                "key.bodylength" : 395,
-                "key.bodyoffset" : 3021,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> createPopulatedLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 581,
-                "key.name" : "createPopulatedLayout(appearance:behavior:delegate:)",
-                "key.namelength" : 153,
-                "key.nameoffset" : 2841,
-                "key.offset" : 2836,
-                "key.overrides" : [
-                  {
-                    "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior8delegateAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewD8Delegate_ptF"
-                  }
-                ],
-                "key.parsed_declaration" : "public func createPopulatedLayout(\n    appearance : Appearance,\n    behavior: Behavior,\n    delegate : CollectionViewLayoutDelegate\n) -> AnyListLayout",
-                "key.parsed_scope.end" : 112,
-                "key.parsed_scope.start" : 97,
-                "key.substructure" : [
-                  {
-                    "key.annotated_decl" : "var layoutAppearance: LayoutType.LayoutAppearance<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: LayoutType.LayoutAppearance<\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 58,
-                    "key.name" : "layoutAppearance",
-                    "key.namelength" : 16,
-                    "key.nameoffset" : 3038,
-                    "key.offset" : 3034,
-                    "key.parsed_declaration" : "var layoutAppearance = LayoutType.LayoutAppearance.default",
-                    "key.parsed_scope.end" : 103,
-                    "key.parsed_scope.start" : 103,
-                    "key.typename" : "LayoutType.LayoutAppearance",
-                    "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
-                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV015createPopulatedC010appearance8behavior8delegateAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewC8Delegate_ptF06layoutM0L_0cM0Qzvp"
-                  }
-                ],
-                "key.typename" : " (LayoutDescription.Configuration) -> (Appearance, Behavior, CollectionViewLayoutDelegate) -> AnyListLayout",
-                "key.typeusr" : "$s10appearance8behavior8delegate10ListableUI13AnyListLayout_pAD10AppearanceV_AD8BehaviorVAD014CollectionViewH8Delegate_ptcD",
-                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV015createPopulatedC010appearance8behavior8delegateAA07AnyListC0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewC8Delegate_ptF"
-              },
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 540
+              }
+            ],
+            "key.bodylength" : 32,
+            "key.bodyoffset" : 581,
+            "key.elements" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public func shouldRebuild(layout anyLayout: AnyListLayout<\/Type>) -> Bool<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 3435
-                  }
-                ],
-                "key.bodylength" : 233,
-                "key.bodyoffset" : 3512,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> shouldRebuild<\/decl.name>(layout<\/decl.var.parameter.argument_label> anyLayout<\/decl.var.parameter.name>: AnyListLayout<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 304,
-                "key.name" : "shouldRebuild(layout:)",
-                "key.namelength" : 47,
-                "key.nameoffset" : 3447,
-                "key.offset" : 3442,
-                "key.overrides" : [
-                  {
-                    "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF"
-                  }
-                ],
-                "key.parsed_declaration" : "public func shouldRebuild(layout anyLayout : AnyListLayout) -> Bool",
-                "key.parsed_scope.end" : 124,
-                "key.parsed_scope.start" : 114,
-                "key.substructure" : [
-                  {
-                    "key.annotated_decl" : "let layout: LayoutType<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: LayoutType<\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 37,
-                    "key.name" : "layout",
-                    "key.namelength" : 6,
-                    "key.nameoffset" : 3529,
-                    "key.offset" : 3525,
-                    "key.parsed_declaration" : "let layout = anyLayout as! LayoutType",
-                    "key.parsed_scope.end" : 116,
-                    "key.parsed_scope.start" : 116,
-                    "key.typename" : "LayoutType",
-                    "key.typeusr" : "$sxD",
-                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tFAGL_xvp"
-                  },
-                  {
-                    "key.annotated_decl" : "let old: LayoutType.LayoutAppearance<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: LayoutType.LayoutAppearance<\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 33,
-                    "key.name" : "old",
-                    "key.namelength" : 3,
-                    "key.nameoffset" : 3579,
-                    "key.offset" : 3575,
-                    "key.parsed_declaration" : "let old = layout.layoutAppearance",
-                    "key.parsed_scope.end" : 117,
-                    "key.parsed_scope.start" : 117,
-                    "key.typename" : "LayoutType.LayoutAppearance",
-                    "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
-                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF3oldL_0C10AppearanceQzvp"
-                  },
-                  {
-                    "key.annotated_decl" : "var new: LayoutType.LayoutAppearance<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: LayoutType.LayoutAppearance<\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 13,
-                    "key.name" : "new",
-                    "key.namelength" : 3,
-                    "key.nameoffset" : 3638,
-                    "key.offset" : 3634,
-                    "key.parsed_declaration" : "var new = old",
-                    "key.parsed_scope.end" : 119,
-                    "key.parsed_scope.start" : 119,
-                    "key.typename" : "LayoutType.LayoutAppearance",
-                    "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
-                    "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF3newL_0C10AppearanceQzvp"
-                  }
-                ],
-                "key.typename" : " (LayoutDescription.Configuration) -> (AnyListLayout) -> Bool",
-                "key.typeusr" : "$s6layoutSb10ListableUI13AnyListLayout_p_tcD",
-                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV13shouldRebuild6layoutSbAA07AnyListC0_p_tF"
-              },
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 9,
+                "key.offset" : 570
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/ref.struct>.Supplementary<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
+            "key.inheritedtypes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public func isSameLayoutType(as anyOther: AnyLayoutDescriptionConfiguration<\/Type>) -> Bool<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 3764
-                  }
-                ],
-                "key.bodylength" : 266,
-                "key.bodyoffset" : 3859,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> isSameLayoutType<\/decl.name>(as<\/decl.var.parameter.argument_label> anyOther<\/decl.var.parameter.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 355,
-                "key.name" : "isSameLayoutType(as:)",
-                "key.namelength" : 65,
-                "key.nameoffset" : 3776,
-                "key.offset" : 3771,
-                "key.overrides" : [
-                  {
-                    "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF"
-                  }
-                ],
-                "key.parsed_declaration" : "public func isSameLayoutType(as anyOther : AnyLayoutDescriptionConfiguration) -> Bool",
-                "key.parsed_scope.end" : 135,
-                "key.parsed_scope.start" : 126,
-                "key.substructure" : [
-                  {
-                    "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-                    "key.length" : 62,
-                    "key.name" : "TODO: We don't need both of these checks, just the second one.",
-                    "key.namelength" : 0,
-                    "key.nameoffset" : 0,
-                    "key.offset" : 3875
-                  }
-                ],
-                "key.typename" : " (LayoutDescription.Configuration) -> (AnyLayoutDescriptionConfiguration) -> Bool",
-                "key.typeusr" : "$s2asSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD",
-                "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV06isSameC4Type2asSbAA03AnycdE0_p_tF"
+                "key.name" : "Equatable"
               }
             ],
-            "key.typename" : "LayoutDescription.Configuration.Type",
-            "key.typeusr" : "$s10ListableUI17LayoutDescriptionV13ConfigurationVy_xGmD",
-            "key.usr" : "s:10ListableUI17LayoutDescriptionV13ConfigurationV"
-          }
-        ],
-        "key.typename" : "LayoutDescription.Type",
-        "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD",
-        "key.usr" : "s:10ListableUI17LayoutDescriptionV"
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol AnyLayoutDescriptionConfiguration<\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 4137
-          }
-        ],
-        "key.bodylength" : 432,
-        "key.bodyoffset" : 4188,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyLayoutDescriptionConfiguration<\/decl.name><\/decl.protocol>",
-        "key.kind" : "source.lang.swift.decl.protocol",
-        "key.length" : 477,
-        "key.name" : "AnyLayoutDescriptionConfiguration",
-        "key.namelength" : 33,
-        "key.nameoffset" : 4153,
-        "key.offset" : 4144,
-        "key.parsed_declaration" : "public protocol AnyLayoutDescriptionConfiguration",
-        "key.parsed_scope.end" : 156,
-        "key.parsed_scope.start" : 140,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func createEmptyLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>) -> AnyListLayout<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> createEmptyLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 106,
-            "key.name" : "createEmptyLayout(appearance:behavior:)",
-            "key.namelength" : 84,
-            "key.nameoffset" : 4198,
-            "key.offset" : 4193,
-            "key.parsed_declaration" : "func createEmptyLayout(\n    appearance : Appearance,\n    behavior: Behavior\n) -> AnyListLayout",
-            "key.parsed_scope.end" : 142,
-            "key.parsed_scope.start" : 142,
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 67,
+            "key.name" : "Supplementary",
+            "key.namelength" : 13,
+            "key.nameoffset" : 554,
+            "key.offset" : 547,
+            "key.parsed_declaration" : "public struct Supplementary : Equatable",
+            "key.parsed_scope.end" : 31,
+            "key.parsed_scope.start" : 29,
             "key.substructure" : [
-
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 18,
+                "key.name" : "frame",
+                "key.namelength" : 5,
+                "key.nameoffset" : 594,
+                "key.offset" : 590,
+                "key.parsed_declaration" : "var frame : CGRect",
+                "key.parsed_scope.end" : 30,
+                "key.parsed_scope.start" : 30,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "CGRect",
+                "key.typeusr" : "$sSo6CGRectVD",
+                "key.usr" : "s:10ListableUI20ListLayoutAttributesV13SupplementaryV5frameSo6CGRectVvp"
+              }
             ],
-            "key.typename" : " (Self) -> (Appearance, Behavior) -> AnyListLayout",
-            "key.typeusr" : "$s10appearance8behavior10ListableUI13AnyListLayout_pAC10AppearanceV_AC8BehaviorVtcD",
-            "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF"
+            "key.typename" : "ListLayoutAttributes.Supplementary.Type",
+            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVmD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV13SupplementaryV"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func createPopulatedLayout(appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, delegate: CollectionViewLayoutDelegate<\/Type>) -> AnyListLayout<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> createPopulatedLayout<\/decl.name>(appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> AnyListLayout<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 159,
-            "key.name" : "createPopulatedLayout(appearance:behavior:delegate:)",
-            "key.namelength" : 137,
-            "key.nameoffset" : 4314,
-            "key.offset" : 4309,
-            "key.parsed_declaration" : "func createPopulatedLayout(\n    appearance : Appearance,\n    behavior: Behavior,\n    delegate : CollectionViewLayoutDelegate\n) -> AnyListLayout",
-            "key.parsed_scope.end" : 147,
-            "key.parsed_scope.start" : 147,
-            "key.substructure" : [
-
+            "key.annotated_decl" : "public struct ListLayoutAttributes<\/Type>.Item : Equatable<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 624
+              }
             ],
-            "key.typename" : " (Self) -> (Appearance, Behavior, CollectionViewLayoutDelegate) -> AnyListLayout",
-            "key.typeusr" : "$s10appearance8behavior8delegate10ListableUI13AnyListLayout_pAD10AppearanceV_AD8BehaviorVAD014CollectionViewH8Delegate_ptcD",
-            "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior8delegateAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewD8Delegate_ptF"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func shouldRebuild(layout anyLayout: AnyListLayout<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> shouldRebuild<\/decl.name>(layout<\/decl.var.parameter.argument_label> anyLayout<\/decl.var.parameter.name>: AnyListLayout<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 60,
-            "key.name" : "shouldRebuild(layout:)",
-            "key.namelength" : 47,
-            "key.nameoffset" : 4483,
-            "key.offset" : 4478,
-            "key.parsed_declaration" : "func shouldRebuild(layout anyLayout : AnyListLayout) -> Bool",
-            "key.parsed_scope.end" : 153,
-            "key.parsed_scope.start" : 153,
+            "key.bodylength" : 32,
+            "key.bodyoffset" : 656,
+            "key.elements" : [
+              {
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 9,
+                "key.offset" : 645
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/ref.struct>.Item<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
+            "key.inheritedtypes" : [
+              {
+                "key.name" : "Equatable"
+              }
+            ],
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 58,
+            "key.name" : "Item",
+            "key.namelength" : 4,
+            "key.nameoffset" : 638,
+            "key.offset" : 631,
+            "key.parsed_declaration" : "public struct Item : Equatable",
+            "key.parsed_scope.end" : 35,
+            "key.parsed_scope.start" : 33,
             "key.substructure" : [
-
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 18,
+                "key.name" : "frame",
+                "key.namelength" : 5,
+                "key.nameoffset" : 669,
+                "key.offset" : 665,
+                "key.parsed_declaration" : "var frame : CGRect",
+                "key.parsed_scope.end" : 34,
+                "key.parsed_scope.start" : 34,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "CGRect",
+                "key.typeusr" : "$sSo6CGRectVD",
+                "key.usr" : "s:10ListableUI20ListLayoutAttributesV4ItemV5frameSo6CGRectVvp"
+              }
             ],
-            "key.typename" : " (Self) -> (AnyListLayout) -> Bool",
-            "key.typeusr" : "$s6layoutSb10ListableUI13AnyListLayout_p_tcD",
-            "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF"
+            "key.typename" : "ListLayoutAttributes.Item.Type",
+            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV4ItemVmD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV4ItemV"
+          }
+        ],
+        "key.typename" : "ListLayoutAttributes.Type",
+        "key.typeusr" : "$s10ListableUI20ListLayoutAttributesVmD",
+        "key.usr" : "s:10ListableUI20ListLayoutAttributesV"
+      },
+      {
+        "key.annotated_decl" : "public struct ListLayoutAttributes : Equatable<\/Type><\/Declaration>",
+        "key.bodylength" : 134,
+        "key.bodyoffset" : 726,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 167,
+        "key.name" : "ListLayoutAttributes",
+        "key.namelength" : 20,
+        "key.nameoffset" : 704,
+        "key.offset" : 694,
+        "key.parsed_declaration" : "extension ListLayoutAttributes",
+        "key.parsed_scope.end" : 46,
+        "key.parsed_scope.start" : 39,
+        "key.substructure" : [
+          {
+            "key.annotated_decl" : "var stringRepresentation: String<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 92,
+            "key.bodyoffset" : 766,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stringRepresentation<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 128,
+            "key.name" : "stringRepresentation",
+            "key.namelength" : 20,
+            "key.nameoffset" : 735,
+            "key.offset" : 731,
+            "key.parsed_declaration" : "var stringRepresentation : String",
+            "key.parsed_scope.end" : 45,
+            "key.parsed_scope.start" : 40,
+            "key.typename" : "String",
+            "key.typeusr" : "$sSSD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV20stringRepresentationSSvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func isSameLayoutType(as other: AnyLayoutDescriptionConfiguration<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isSameLayoutType<\/decl.name>(as<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnyLayoutDescriptionConfiguration<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 75,
-            "key.name" : "isSameLayoutType(as:)",
-            "key.namelength" : 62,
-            "key.nameoffset" : 4549,
-            "key.offset" : 4544,
-            "key.parsed_declaration" : "func isSameLayoutType(as other : AnyLayoutDescriptionConfiguration) -> Bool",
-            "key.parsed_scope.end" : 155,
-            "key.parsed_scope.start" : 155,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : " (Self) -> (AnyLayoutDescriptionConfiguration) -> Bool",
-            "key.typeusr" : "$s2asSb10ListableUI33AnyLayoutDescriptionConfiguration_p_tcD",
-            "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF"
+            "key.annotated_decl" : "var output: String<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> output<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+            "key.kind" : "source.lang.swift.decl.var.local",
+            "key.length" : 15,
+            "key.name" : "output",
+            "key.namelength" : 6,
+            "key.nameoffset" : 779,
+            "key.offset" : 775,
+            "key.parsed_declaration" : "var output = \"\"",
+            "key.parsed_scope.end" : 41,
+            "key.parsed_scope.start" : 41,
+            "key.typename" : "String",
+            "key.typeusr" : "$sSSD",
+            "key.usr" : "s:10ListableUI20ListLayoutAttributesV20stringRepresentationSSvg6outputL_SSvp"
           }
         ],
-        "key.typename" : "AnyLayoutDescriptionConfiguration.Protocol",
-        "key.typeusr" : "$s10ListableUI33AnyLayoutDescriptionConfiguration_pmD",
-        "key.usr" : "s:10ListableUI33AnyLayoutDescriptionConfigurationP"
+        "key.typename" : "ListLayoutAttributes.Type",
+        "key.typeusr" : "$s10ListableUI20ListLayoutAttributesVmD",
+        "key.usr" : "s:10ListableUI20ListLayoutAttributesV"
       }
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 5733,
+    "key.length" : 13301,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>",
+        "key.annotated_decl" : "public final class ListLayoutContent<\/Declaration>",
         "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.final",
+            "key.length" : 5,
+            "key.offset" : 121
+          },
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 107
-          }
-        ],
-        "key.bodylength" : 345,
-        "key.bodyoffset" : 151,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 13,
-            "key.offset" : 136
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>",
-        "key.inheritedtypes" : [
-          {
-            "key.name" : "AnyListLayout"
+            "key.offset" : 114
           }
         ],
-        "key.kind" : "source.lang.swift.decl.protocol",
-        "key.length" : 383,
-        "key.name" : "ListLayout",
-        "key.namelength" : 10,
-        "key.nameoffset" : 123,
-        "key.offset" : 114,
-        "key.parsed_declaration" : "public protocol ListLayout : AnyListLayout",
-        "key.parsed_scope.end" : 25,
+        "key.bodylength" : 7212,
+        "key.bodyoffset" : 152,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListLayoutContent<\/decl.name><\/decl.class>",
+        "key.kind" : "source.lang.swift.decl.class",
+        "key.length" : 7238,
+        "key.name" : "ListLayoutContent",
+        "key.namelength" : 17,
+        "key.nameoffset" : 133,
+        "key.offset" : 127,
+        "key.parsed_declaration" : "public final class ListLayoutContent",
+        "key.parsed_scope.end" : 223,
         "key.parsed_scope.start" : 11,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "associatedtype LayoutAppearance : ListLayoutAppearance<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> LayoutAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.associatedtype>",
-            "key.kind" : "source.lang.swift.decl.associatedtype",
-            "key.length" : 52,
-            "key.name" : "LayoutAppearance",
-            "key.namelength" : 16,
-            "key.nameoffset" : 171,
-            "key.offset" : 156,
-            "key.parsed_declaration" : "associatedtype LayoutAppearance:ListLayoutAppearance",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var contentSize: CGSize<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 24,
+            "key.name" : "contentSize",
+            "key.namelength" : 11,
+            "key.nameoffset" : 161,
+            "key.offset" : 157,
+            "key.parsed_declaration" : "var contentSize : CGSize",
             "key.parsed_scope.end" : 13,
             "key.parsed_scope.start" : 13,
-            "key.typename" : "Self.LayoutAppearance.Type",
-            "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzmD",
-            "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa"
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "CGSize",
+            "key.typeusr" : "$sSo6CGSizeVD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC11contentSizeSo6CGSizeVvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 260,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
-            "key.kind" : "source.lang.swift.decl.var.static",
-            "key.length" : 48,
-            "key.name" : "defaults",
-            "key.namelength" : 8,
-            "key.nameoffset" : 229,
-            "key.offset" : 218,
-            "key.parsed_declaration" : "static var defaults : ListLayoutDefaults",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let header: SupplementaryItemInfo<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> header<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 34,
+            "key.name" : "header",
+            "key.namelength" : 6,
+            "key.nameoffset" : 199,
+            "key.offset" : 195,
+            "key.parsed_declaration" : "let header : SupplementaryItemInfo",
             "key.parsed_scope.end" : 15,
             "key.parsed_scope.start" : 15,
-            "key.typename" : "ListLayoutDefaults",
-            "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD",
-            "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ"
+            "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
+            "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC6headerAC21SupplementaryItemInfoCvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var layoutAppearance: LayoutAppearance<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 317,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: LayoutAppearance<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let footer: SupplementaryItemInfo<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> footer<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 47,
-            "key.name" : "layoutAppearance",
-            "key.namelength" : 16,
-            "key.nameoffset" : 280,
-            "key.offset" : 276,
-            "key.parsed_declaration" : "var layoutAppearance : LayoutAppearance",
-            "key.parsed_scope.end" : 17,
-            "key.parsed_scope.start" : 17,
-            "key.typename" : "Self.LayoutAppearance",
-            "key.typeusr" : "$s16LayoutAppearance10ListableUI04ListA0PQzD",
-            "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp"
+            "key.length" : 34,
+            "key.name" : "footer",
+            "key.namelength" : 6,
+            "key.nameoffset" : 238,
+            "key.offset" : 234,
+            "key.parsed_declaration" : "let footer : SupplementaryItemInfo",
+            "key.parsed_scope.end" : 16,
+            "key.parsed_scope.start" : 16,
+            "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
+            "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC6footerAC21SupplementaryItemInfoCvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "init(layoutAppearance: LayoutAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: LayoutAppearance<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 154,
-            "key.name" : "init(layoutAppearance:appearance:behavior:content:)",
-            "key.namelength" : 154,
-            "key.nameoffset" : 341,
-            "key.offset" : 341,
-            "key.parsed_declaration" : "init(\n    layoutAppearance : LayoutAppearance,\n    appearance : Appearance,\n    behavior : Behavior,\n    content : ListLayoutContent\n)",
-            "key.parsed_scope.end" : 19,
-            "key.parsed_scope.start" : 19,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : " (Self.Type) -> (Self.LayoutAppearance, Appearance, Behavior, ListLayoutContent) -> Self",
-            "key.typeusr" : "$s16layoutAppearance10appearance8behavior7contentx06LayoutB0Qz_10ListableUI0B0VAG8BehaviorVAG04ListF7ContentCtcD",
-            "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc"
-          }
-        ],
-        "key.typename" : "ListLayout.Protocol",
-        "key.typeusr" : "$s10ListableUI10ListLayout_pmD",
-        "key.usr" : "s:10ListableUI10ListLayoutP"
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol ListLayout : AnyListLayout<\/Type><\/Declaration>",
-        "key.attributes" : [
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let overscrollFooter: SupplementaryItemInfo<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 44,
+            "key.name" : "overscrollFooter",
+            "key.namelength" : 16,
+            "key.nameoffset" : 282,
+            "key.offset" : 278,
+            "key.parsed_declaration" : "let overscrollFooter : SupplementaryItemInfo",
+            "key.parsed_scope.end" : 18,
+            "key.parsed_scope.start" : 18,
+            "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
+            "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC16overscrollFooterAC21SupplementaryItemInfoCvp"
+          },
           {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 500
-          }
-        ],
-        "key.bodylength" : 183,
-        "key.bodyoffset" : 529,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayout<\/decl.name> : AnyListLayout<\/ref.protocol><\/decl.protocol>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 206,
-        "key.name" : "ListLayout",
-        "key.namelength" : 10,
-        "key.nameoffset" : 517,
-        "key.offset" : 507,
-        "key.parsed_declaration" : "public extension ListLayout",
-        "key.parsed_scope.end" : 37,
-        "key.parsed_scope.start" : 28,
-        "key.substructure" : [
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let sections: [SectionInfo<\/Type>]<\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sections<\/decl.name>: [SectionInfo<\/ref.class>]<\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 28,
+            "key.name" : "sections",
+            "key.namelength" : 8,
+            "key.nameoffset" : 336,
+            "key.offset" : 332,
+            "key.parsed_declaration" : "let sections : [SectionInfo]",
+            "key.parsed_scope.end" : 20,
+            "key.parsed_scope.start" : 20,
+            "key.typename" : "[ListLayoutContent.SectionInfo]",
+            "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC11SectionInfoCGD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC8sectionsSayAC11SectionInfoCGvp"
+          },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var direction: LayoutDirection<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 45,
-            "key.bodyoffset" : 566,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>] { get }<\/Declaration>",
+            "key.bodylength" : 296,
+            "key.bodyoffset" : 405,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 78,
-            "key.name" : "direction",
-            "key.namelength" : 9,
-            "key.nameoffset" : 538,
-            "key.offset" : 534,
-            "key.parsed_declaration" : "var direction: LayoutDirection",
-            "key.parsed_scope.end" : 32,
-            "key.parsed_scope.start" : 30,
+            "key.length" : 332,
+            "key.name" : "all",
+            "key.namelength" : 3,
+            "key.nameoffset" : 374,
+            "key.offset" : 370,
+            "key.parsed_declaration" : "var all : [ListLayoutContentItem]",
+            "key.parsed_scope.end" : 36,
+            "key.parsed_scope.start" : 22,
+            "key.typename" : "[ListLayoutContentItem]",
+            "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC3allSayAA0cdE4Item_pGvp"
+          },
+          {
+            "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>]<\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.local>",
+            "key.kind" : "source.lang.swift.decl.var.local",
+            "key.length" : 38,
+            "key.name" : "all",
+            "key.namelength" : 3,
+            "key.nameoffset" : 418,
+            "key.offset" : 414,
+            "key.parsed_declaration" : "var all : [ListLayoutContentItem] = []",
+            "key.parsed_scope.end" : 23,
+            "key.parsed_scope.start" : 23,
             "key.related_decls" : [
               {
-                "key.annotated_decl" : "direction<\/RelatedName>"
+                "key.annotated_decl" : "all<\/RelatedName>"
               }
             ],
-            "key.typename" : "LayoutDirection",
-            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
-            "key.usr" : "s:10ListableUI10ListLayoutPAAE9directionAA0D9DirectionOvp"
+            "key.typename" : "[ListLayoutContentItem]",
+            "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC3allSayAA0cdE4Item_pGvgADL_AFvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var stickySectionHeaders: Bool<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 56,
-            "key.bodyoffset" : 654,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 89,
-            "key.name" : "stickySectionHeaders",
-            "key.namelength" : 20,
-            "key.nameoffset" : 626,
-            "key.offset" : 622,
-            "key.parsed_declaration" : "var stickySectionHeaders: Bool",
-            "key.parsed_scope.end" : 36,
-            "key.parsed_scope.start" : 34,
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "init()<\/Declaration>",
+            "key.bodylength" : 288,
+            "key.bodyoffset" : 724,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 301,
+            "key.name" : "init()",
+            "key.namelength" : 6,
+            "key.nameoffset" : 712,
+            "key.offset" : 712,
+            "key.parsed_declaration" : "init()",
+            "key.parsed_scope.end" : 47,
+            "key.parsed_scope.start" : 38,
             "key.related_decls" : [
               {
-                "key.annotated_decl" : "stickySectionHeaders<\/RelatedName>"
+                "key.annotated_decl" : "init(header:footer:overscrollFooter:sections:)<\/RelatedName>"
               }
             ],
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI10ListLayoutPAAE20stickySectionHeadersSbvp"
-          }
-        ],
-        "key.typename" : "ListLayout.Protocol",
-        "key.typeusr" : "$s10ListableUI10ListLayout_pmD",
-        "key.usr" : "s:10ListableUI10ListLayoutP"
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 716
-          }
-        ],
-        "key.bodylength" : 623,
-        "key.bodyoffset" : 759,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 9,
-            "key.offset" : 748
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>",
-        "key.inheritedtypes" : [
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ListLayoutContent.Type) -> () -> ListLayoutContent",
+            "key.typeusr" : "$s10ListableUI17ListLayoutContentCycD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentCACycfc"
+          },
           {
-            "key.name" : "AnyObject"
-          }
-        ],
-        "key.kind" : "source.lang.swift.decl.protocol",
-        "key.length" : 660,
-        "key.name" : "AnyListLayout",
-        "key.namelength" : 13,
-        "key.nameoffset" : 732,
-        "key.offset" : 723,
-        "key.parsed_declaration" : "public protocol AnyListLayout : AnyObject",
-        "key.parsed_scope.end" : 69,
-        "key.parsed_scope.start" : 40,
-        "key.substructure" : [
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "init(header: SupplementaryItemInfo<\/Type>?, footer: SupplementaryItemInfo<\/Type>?, overscrollFooter: SupplementaryItemInfo<\/Type>?, sections: [SectionInfo<\/Type>])<\/Declaration>",
+            "key.bodylength" : 262,
+            "key.bodyoffset" : 1202,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(header<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, overscrollFooter<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, sections<\/decl.var.parameter.argument_label>: [SectionInfo<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 442,
+            "key.name" : "init(header:footer:overscrollFooter:sections:)",
+            "key.namelength" : 177,
+            "key.nameoffset" : 1023,
+            "key.offset" : 1023,
+            "key.parsed_declaration" : "init(\n    header : SupplementaryItemInfo?,\n    footer : SupplementaryItemInfo?,\n    overscrollFooter : SupplementaryItemInfo?,\n    sections : [SectionInfo]\n)",
+            "key.parsed_scope.end" : 61,
+            "key.parsed_scope.start" : 49,
+            "key.related_decls" : [
+              {
+                "key.annotated_decl" : "init()<\/RelatedName>"
+              }
+            ],
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ListLayoutContent.Type) -> (ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, [ListLayoutContent.SectionInfo]) -> ListLayoutContent",
+            "key.typeusr" : "$s6header6footer16overscrollFooter8sections10ListableUI17ListLayoutContentCAG21SupplementaryItemInfoCSg_A2JSayAG07SectionM0CGtcD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC6header6footer16overscrollFooter8sectionsA2C21SupplementaryItemInfoCSg_A2JSayAC07SectionM0CGtcfc"
+          },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
             "key.length" : 23,
-            "key.name" : "MARK: Public Properties",
+            "key.name" : "MARK: Fetching Elements",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 774
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var appearance: Appearance<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 843,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 35,
-            "key.name" : "appearance",
-            "key.namelength" : 10,
-            "key.nameoffset" : 818,
-            "key.offset" : 814,
-            "key.parsed_declaration" : "var appearance : Appearance",
-            "key.parsed_scope.end" : 46,
-            "key.parsed_scope.start" : 46,
-            "key.typename" : "Appearance",
-            "key.typeusr" : "$s10ListableUI10AppearanceVD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var behavior: Behavior<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 879,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 31,
-            "key.name" : "behavior",
-            "key.namelength" : 8,
-            "key.nameoffset" : 858,
-            "key.offset" : 854,
-            "key.parsed_declaration" : "var behavior : Behavior",
-            "key.parsed_scope.end" : 47,
-            "key.parsed_scope.start" : 47,
-            "key.typename" : "Behavior",
-            "key.typeusr" : "$s10ListableUI8BehaviorVD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp"
+            "key.offset" : 1485
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var content: ListLayoutContent<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 928,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 39,
-            "key.name" : "content",
-            "key.namelength" : 7,
-            "key.nameoffset" : 899,
-            "key.offset" : 895,
-            "key.parsed_declaration" : "var content : ListLayoutContent",
-            "key.parsed_scope.end" : 49,
-            "key.parsed_scope.start" : 49,
-            "key.typename" : "ListLayoutContent",
-            "key.typeusr" : "$s10ListableUI17ListLayoutContentCD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp"
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func layoutAttributes(at indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
+            "key.bodylength" : 112,
+            "key.bodyoffset" : 1614,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 202,
+            "key.name" : "layoutAttributes(at:)",
+            "key.namelength" : 42,
+            "key.nameoffset" : 1530,
+            "key.offset" : 1525,
+            "key.parsed_declaration" : "func layoutAttributes(at indexPath : IndexPath) -> UICollectionViewLayoutAttributes",
+            "key.parsed_scope.end" : 72,
+            "key.parsed_scope.start" : 67,
+            "key.related_decls" : [
+              {
+                "key.annotated_decl" : "layoutAttributes(in:alwaysIncludeOverscroll:)<\/RelatedName>"
+              },
+              {
+                "key.annotated_decl" : "layoutAttributes<\/RelatedName>"
+              }
+            ],
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "let item: ListLayoutContent<\/Type>.ItemInfo<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 35,
+                "key.name" : "item",
+                "key.namelength" : 4,
+                "key.nameoffset" : 1627,
+                "key.offset" : 1623,
+                "key.parsed_declaration" : "let item = self.item(at: indexPath)",
+                "key.parsed_scope.end" : 69,
+                "key.parsed_scope.start" : 69,
+                "key.related_decls" : [
+                  {
+                    "key.annotated_decl" : "item(at:)<\/RelatedName>"
+                  }
+                ],
+                "key.typename" : "ListLayoutContent.ItemInfo",
+                "key.typeusr" : "$s10ListableUI17ListLayoutContentC8ItemInfoCD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2atSo016UICollectionViewdG0C10Foundation9IndexPathV_tF4itemL_AC8ItemInfoCvp"
+              }
+            ],
+            "key.typename" : "(ListLayoutContent) -> (IndexPath) -> UICollectionViewLayoutAttributes",
+            "key.typeusr" : "$s2atSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_tcD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2atSo016UICollectionViewdG0C10Foundation9IndexPathV_tF"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 1011,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 65,
-            "key.name" : "scrollViewProperties",
-            "key.namelength" : 20,
-            "key.nameoffset" : 956,
-            "key.offset" : 952,
-            "key.parsed_declaration" : "var scrollViewProperties : ListLayoutScrollViewProperties",
-            "key.parsed_scope.end" : 51,
-            "key.parsed_scope.start" : 51,
-            "key.typename" : "ListLayoutScrollViewProperties",
-            "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp"
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func item(at indexPath: IndexPath<\/Type>) -> ListLayoutContent<\/Type>.ItemInfo<\/Type><\/Declaration>",
+            "key.bodylength" : 75,
+            "key.bodyoffset" : 1808,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> item<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 147,
+            "key.name" : "item(at:)",
+            "key.namelength" : 30,
+            "key.nameoffset" : 1742,
+            "key.offset" : 1737,
+            "key.parsed_declaration" : "func item(at indexPath : IndexPath) -> ListLayoutContent.ItemInfo",
+            "key.parsed_scope.end" : 77,
+            "key.parsed_scope.start" : 74,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ListLayoutContent) -> (IndexPath) -> ListLayoutContent.ItemInfo",
+            "key.typeusr" : "$s2at10ListableUI17ListLayoutContentC8ItemInfoC10Foundation9IndexPathV_tcD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC4item2atAC8ItemInfoC10Foundation9IndexPathV_tF"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var direction: LayoutDirection<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 1060,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 39,
-            "key.name" : "direction",
-            "key.namelength" : 9,
-            "key.nameoffset" : 1031,
-            "key.offset" : 1027,
-            "key.parsed_declaration" : "var direction : LayoutDirection",
-            "key.parsed_scope.end" : 53,
-            "key.parsed_scope.start" : 53,
-            "key.typename" : "LayoutDirection",
-            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutP9directionAA0E9DirectionOvp"
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func supplementaryLayoutAttributes(of kind: String<\/Type>, at indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>",
+            "key.bodylength" : 580,
+            "key.bodyoffset" : 2015,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> supplementaryLayoutAttributes<\/decl.name>(of<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 702,
+            "key.name" : "supplementaryLayoutAttributes(of:at:)",
+            "key.namelength" : 73,
+            "key.nameoffset" : 1899,
+            "key.offset" : 1894,
+            "key.parsed_declaration" : "func supplementaryLayoutAttributes(of kind : String, at indexPath : IndexPath) -> UICollectionViewLayoutAttributes?",
+            "key.parsed_scope.end" : 92,
+            "key.parsed_scope.start" : 79,
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "let section: ListLayoutContent<\/Type>.SectionInfo<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: ListLayoutContent<\/ref.class>.SectionInfo<\/ref.class><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 46,
+                "key.name" : "section",
+                "key.namelength" : 7,
+                "key.nameoffset" : 2028,
+                "key.offset" : 2024,
+                "key.parsed_declaration" : "let section = self.sections[indexPath.section]",
+                "key.parsed_scope.end" : 81,
+                "key.parsed_scope.start" : 81,
+                "key.typename" : "ListLayoutContent.SectionInfo",
+                "key.typeusr" : "$s10ListableUI17ListLayoutContentC11SectionInfoCD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC013supplementaryD10Attributes2of2atSo016UICollectionViewdG0CSgSS_10Foundation9IndexPathVtF7sectionL_AC11SectionInfoCvp"
+              }
+            ],
+            "key.typename" : "(ListLayoutContent) -> (String, IndexPath) -> UICollectionViewLayoutAttributes?",
+            "key.typeusr" : "$s2of2atSo32UICollectionViewLayoutAttributesCSgSS_10Foundation9IndexPathVtcD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC013supplementaryD10Attributes2of2atSo016UICollectionViewdG0CSgSS_10Foundation9IndexPathVtF"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var stickySectionHeaders: Bool<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 1109,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 39,
-            "key.name" : "stickySectionHeaders",
-            "key.namelength" : 20,
-            "key.nameoffset" : 1080,
-            "key.offset" : 1076,
-            "key.parsed_declaration" : "var stickySectionHeaders : Bool",
-            "key.parsed_scope.end" : 55,
-            "key.parsed_scope.start" : 55,
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutP20stickySectionHeadersSbvp"
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func layoutAttributes(in rect: CGRect<\/Type>, alwaysIncludeOverscroll: Bool<\/Type>) -> [UICollectionViewLayoutAttributes<\/Type>]<\/Declaration>",
+            "key.bodylength" : 2545,
+            "key.bodyoffset" : 2720,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(in<\/decl.var.parameter.argument_label> rect<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, alwaysIncludeOverscroll<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [UICollectionViewLayoutAttributes<\/ref.class>]<\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 2660,
+            "key.name" : "layoutAttributes(in:alwaysIncludeOverscroll:)",
+            "key.namelength" : 65,
+            "key.nameoffset" : 2611,
+            "key.offset" : 2606,
+            "key.parsed_declaration" : "func layoutAttributes(in rect: CGRect, alwaysIncludeOverscroll : Bool) -> [UICollectionViewLayoutAttributes]",
+            "key.parsed_scope.end" : 159,
+            "key.parsed_scope.start" : 94,
+            "key.related_decls" : [
+              {
+                "key.annotated_decl" : "layoutAttributes(at:)<\/RelatedName>"
+              },
+              {
+                "key.annotated_decl" : "layoutAttributes<\/RelatedName>"
+              }
+            ],
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "var attributes: [UICollectionViewLayoutAttributes<\/Type>]<\/Declaration>",
+                "key.doc.comment" : "Supplementary items are technically attached to index paths. Eg, list headers\nand footers are attached to (0,0), and section headers and footers are attached to\n(sectionIndex, 0). Because of this, we can't return any list headers or footers\nunless there's at least one section – the collection view will not have anything to\nattach them to, and will then crash.",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> attributes<\/decl.name>: [UICollectionViewLayoutAttributes<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 53,
+                "key.name" : "attributes",
+                "key.namelength" : 10,
+                "key.nameoffset" : 3259,
+                "key.offset" : 3255,
+                "key.parsed_declaration" : "var attributes = [UICollectionViewLayoutAttributes]()",
+                "key.parsed_scope.end" : 107,
+                "key.parsed_scope.start" : 107,
+                "key.typename" : "[UICollectionViewLayoutAttributes]",
+                "key.typeusr" : "$sSaySo32UICollectionViewLayoutAttributesCGD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2in23alwaysIncludeOverscrollSaySo016UICollectionViewdG0CGSo6CGRectV_SbtF10attributesL_AIvp"
+              }
+            ],
+            "key.typename" : "(ListLayoutContent) -> (CGRect, Bool) -> [UICollectionViewLayoutAttributes]",
+            "key.typeusr" : "$s2in23alwaysIncludeOverscrollSaySo32UICollectionViewLayoutAttributesCGSo6CGRectV_SbtcD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2in23alwaysIncludeOverscrollSaySo016UICollectionViewdG0CGSo6CGRectV_SbtF"
           },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -43932,4385 +44088,5964 @@
             "key.name" : "MARK: Performing Layouts",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 1135
+            "key.offset" : 5286
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func updateLayout(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func setSectionContentsFrames()<\/Declaration>",
+            "key.bodylength" : 81,
+            "key.bodyoffset" : 5360,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setSectionContentsFrames<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 55,
-            "key.name" : "updateLayout(in:)",
-            "key.namelength" : 50,
-            "key.nameoffset" : 1181,
-            "key.offset" : 1176,
-            "key.parsed_declaration" : "func updateLayout(in collectionView : UICollectionView)",
-            "key.parsed_scope.end" : 61,
-            "key.parsed_scope.start" : 61,
+            "key.length" : 115,
+            "key.name" : "setSectionContentsFrames()",
+            "key.namelength" : 26,
+            "key.nameoffset" : 5332,
+            "key.offset" : 5327,
+            "key.parsed_declaration" : "func setSectionContentsFrames()",
+            "key.parsed_scope.end" : 169,
+            "key.parsed_scope.start" : 165,
             "key.substructure" : [
 
             ],
-            "key.typename" : " (Self) -> (UICollectionView) -> ()",
-            "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF"
+            "key.typename" : "(ListLayoutContent) -> () -> ()",
+            "key.typeusr" : "$syycD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC24setSectionContentsFramesyyF"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func layout(delegate: CollectionViewLayoutDelegate<\/Type>, in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layout<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func reindexLiveIndexPaths()<\/Declaration>",
+            "key.bodylength" : 252,
+            "key.bodyoffset" : 5486,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> reindexLiveIndexPaths<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 112,
-            "key.name" : "layout(delegate:in:)",
-            "key.namelength" : 107,
-            "key.nameoffset" : 1246,
-            "key.offset" : 1241,
-            "key.parsed_declaration" : "func layout(\n    delegate : CollectionViewLayoutDelegate,\n    in collectionView : UICollectionView\n)",
-            "key.parsed_scope.end" : 63,
-            "key.parsed_scope.start" : 63,
+            "key.length" : 287,
+            "key.name" : "reindexLiveIndexPaths()",
+            "key.namelength" : 23,
+            "key.nameoffset" : 5457,
+            "key.offset" : 5452,
+            "key.parsed_declaration" : "func reindexLiveIndexPaths()",
+            "key.parsed_scope.end" : 178,
+            "key.parsed_scope.start" : 171,
             "key.substructure" : [
 
             ],
-            "key.typename" : " (Self) -> (CollectionViewLayoutDelegate, UICollectionView) -> ()",
-            "key.typeusr" : "$s8delegate2iny10ListableUI28CollectionViewLayoutDelegate_p_So012UICollectionF0CtcD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
+            "key.typename" : "(ListLayoutContent) -> () -> ()",
+            "key.typeusr" : "$syycD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC21reindexLiveIndexPathsyyF"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func setZIndexes()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setZIndexes<\/decl.name>()<\/decl.function.method.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func reindexDelegateProvidedIndexPaths()<\/Declaration>",
+            "key.bodylength" : 264,
+            "key.bodyoffset" : 5795,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> reindexDelegateProvidedIndexPaths<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 18,
-            "key.name" : "setZIndexes()",
-            "key.namelength" : 13,
-            "key.nameoffset" : 1368,
-            "key.offset" : 1363,
-            "key.parsed_declaration" : "func setZIndexes()",
-            "key.parsed_scope.end" : 68,
-            "key.parsed_scope.start" : 68,
+            "key.length" : 311,
+            "key.name" : "reindexDelegateProvidedIndexPaths()",
+            "key.namelength" : 35,
+            "key.nameoffset" : 5754,
+            "key.offset" : 5749,
+            "key.parsed_declaration" : "func reindexDelegateProvidedIndexPaths()",
+            "key.parsed_scope.end" : 187,
+            "key.parsed_scope.start" : 180,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ListLayoutContent) -> () -> ()",
+            "key.typeusr" : "$syycD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC33reindexDelegateProvidedIndexPathsyyF"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func move(from: IndexPath<\/Type>, to: IndexPath<\/Type>)<\/Declaration>",
+            "key.bodylength" : 253,
+            "key.bodyoffset" : 6119,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> move<\/decl.name>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 303,
+            "key.name" : "move(from:to:)",
+            "key.namelength" : 38,
+            "key.nameoffset" : 6075,
+            "key.offset" : 6070,
+            "key.parsed_declaration" : "func move(from : IndexPath, to : IndexPath)",
+            "key.parsed_scope.end" : 199,
+            "key.parsed_scope.start" : 189,
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "let info: ListLayoutContent<\/Type>.ItemInfo<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 30,
+                "key.name" : "info",
+                "key.namelength" : 4,
+                "key.nameoffset" : 6202,
+                "key.offset" : 6198,
+                "key.parsed_declaration" : "let info = self.item(at: from)",
+                "key.parsed_scope.end" : 195,
+                "key.parsed_scope.start" : 195,
+                "key.typename" : "ListLayoutContent.ItemInfo",
+                "key.typeusr" : "$s10ListableUI17ListLayoutContentC8ItemInfoCD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toy10Foundation9IndexPathV_AItF4infoL_AC8ItemInfoCvp"
+              }
+            ],
+            "key.typename" : "(ListLayoutContent) -> (IndexPath, IndexPath) -> ()",
+            "key.typeusr" : "$s4from2toy10Foundation9IndexPathV_AEtcD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toy10Foundation9IndexPathV_AItF"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 17,
+            "key.name" : "MARK: Layout Data",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 6393
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var layoutAttributes: ListLayoutAttributes<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 890,
+            "key.bodyoffset" : 6472,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAttributes<\/decl.name>: ListLayoutAttributes<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 936,
+            "key.name" : "layoutAttributes",
+            "key.namelength" : 16,
+            "key.nameoffset" : 6431,
+            "key.offset" : 6427,
+            "key.parsed_declaration" : "var layoutAttributes : ListLayoutAttributes",
+            "key.parsed_scope.end" : 222,
+            "key.parsed_scope.start" : 205,
             "key.related_decls" : [
               {
-                "key.annotated_decl" : "setZIndexes()<\/RelatedName>"
+                "key.annotated_decl" : "layoutAttributes(at:)<\/RelatedName>"
+              },
+              {
+                "key.annotated_decl" : "layoutAttributes(in:alwaysIncludeOverscroll:)<\/RelatedName>"
               }
             ],
-            "key.typename" : " (Self) -> () -> ()",
-            "key.typeusr" : "$syycD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutP11setZIndexesyyF"
+            "key.typename" : "ListLayoutAttributes",
+            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesVD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributesAA0cdG0Vvp"
           }
         ],
-        "key.typename" : "AnyListLayout.Protocol",
-        "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD",
-        "key.usr" : "s:10ListableUI13AnyListLayoutP"
+        "key.typename" : "ListLayoutContent.Type",
+        "key.typeusr" : "$s10ListableUI17ListLayoutContentCmD",
+        "key.usr" : "s:10ListableUI17ListLayoutContentC"
       },
       {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>",
-        "key.attributes" : [
+        "key.accessibility" : "source.lang.swift.accessibility.internal",
+        "key.annotated_decl" : "protocol ListLayoutContentItem : AnyObject<\/Declaration>",
+        "key.bodylength" : 137,
+        "key.bodyoffset" : 7412,
+        "key.elements" : [
           {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 1386
-          }
-        ],
-        "key.bodylength" : 460,
-        "key.bodyoffset" : 1418,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 486,
-        "key.name" : "AnyListLayout",
-        "key.namelength" : 13,
-        "key.nameoffset" : 1403,
-        "key.offset" : 1393,
-        "key.parsed_declaration" : "public extension AnyListLayout",
-        "key.parsed_scope.end" : 91,
-        "key.parsed_scope.start" : 72,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func setZIndexes()<\/Declaration>",
-            "key.bodylength" : 429,
-            "key.bodyoffset" : 1447,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setZIndexes<\/decl.name>()<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 454,
-            "key.name" : "setZIndexes()",
-            "key.namelength" : 13,
-            "key.nameoffset" : 1428,
-            "key.offset" : 1423,
-            "key.parsed_declaration" : "func setZIndexes()",
-            "key.parsed_scope.end" : 90,
-            "key.parsed_scope.start" : 74,
-            "key.related_decls" : [
-              {
-                "key.annotated_decl" : "setZIndexes()<\/RelatedName>"
-              }
-            ],
-            "key.substructure" : [
-
-            ],
-            "key.typename" : " (Self) -> () -> ()",
-            "key.typeusr" : "$syycD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE11setZIndexesyyF"
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 9,
+            "key.offset" : 7401
           }
         ],
-        "key.typename" : "AnyListLayout.Protocol",
-        "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD",
-        "key.usr" : "s:10ListableUI13AnyListLayoutP"
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>",
-        "key.attributes" : [
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+        "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> ListLayoutContentItem<\/decl.name> : AnyObject<\/decl.protocol>",
+        "key.inheritedtypes" : [
           {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 1882
+            "key.name" : "AnyObject"
           }
         ],
-        "key.bodylength" : 391,
-        "key.bodyoffset" : 1914,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 417,
-        "key.name" : "AnyListLayout",
-        "key.namelength" : 13,
-        "key.nameoffset" : 1899,
-        "key.offset" : 1889,
-        "key.parsed_declaration" : "public extension AnyListLayout",
-        "key.parsed_scope.end" : 105,
-        "key.parsed_scope.start" : 94,
+        "key.kind" : "source.lang.swift.decl.protocol",
+        "key.length" : 182,
+        "key.name" : "ListLayoutContentItem",
+        "key.namelength" : 21,
+        "key.nameoffset" : 7377,
+        "key.offset" : 7368,
+        "key.parsed_declaration" : "protocol ListLayoutContentItem : AnyObject",
+        "key.parsed_scope.end" : 233,
+        "key.parsed_scope.start" : 226,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func visibleContentFrame(for collectionView: UICollectionView<\/Type>) -> CGRect<\/Type><\/Declaration>",
-            "key.bodylength" : 305,
-            "key.bodyoffset" : 1998,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> visibleContentFrame<\/decl.name>(for<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 385,
-            "key.name" : "visibleContentFrame(for:)",
-            "key.namelength" : 58,
-            "key.nameoffset" : 1924,
-            "key.offset" : 1919,
-            "key.parsed_declaration" : "func visibleContentFrame(for collectionView : UICollectionView) -> CGRect",
-            "key.parsed_scope.end" : 104,
-            "key.parsed_scope.start" : 96,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : " (Self) -> (UICollectionView) -> CGRect",
-            "key.typeusr" : "$s3forSo6CGRectVSo16UICollectionViewC_tcD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE19visibleContentFrame3forSo6CGRectVSo16UICollectionViewC_tF"
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var size: CGSize<\/Type> { get set }<\/Declaration>",
+            "key.bodylength" : 9,
+            "key.bodyoffset" : 7436,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 29,
+            "key.name" : "size",
+            "key.namelength" : 4,
+            "key.nameoffset" : 7421,
+            "key.offset" : 7417,
+            "key.parsed_declaration" : "var size : CGSize",
+            "key.parsed_scope.end" : 228,
+            "key.parsed_scope.start" : 228,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "CGSize",
+            "key.typeusr" : "$sSo6CGSizeVD",
+            "key.usr" : "s:10ListableUI21ListLayoutContentItemP4sizeSo6CGSizeVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var x: CGFloat<\/Type> { get set }<\/Declaration>",
+            "key.bodylength" : 9,
+            "key.bodyoffset" : 7468,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 27,
+            "key.name" : "x",
+            "key.namelength" : 1,
+            "key.nameoffset" : 7455,
+            "key.offset" : 7451,
+            "key.parsed_declaration" : "var x : CGFloat",
+            "key.parsed_scope.end" : 229,
+            "key.parsed_scope.start" : 229,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "CGFloat",
+            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+            "key.usr" : "s:10ListableUI21ListLayoutContentItemP1x12CoreGraphics7CGFloatVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var y: CGFloat<\/Type> { get set }<\/Declaration>",
+            "key.bodylength" : 9,
+            "key.bodyoffset" : 7500,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 27,
+            "key.name" : "y",
+            "key.namelength" : 1,
+            "key.nameoffset" : 7487,
+            "key.offset" : 7483,
+            "key.parsed_declaration" : "var y : CGFloat",
+            "key.parsed_scope.end" : 230,
+            "key.parsed_scope.start" : 230,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "CGFloat",
+            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+            "key.usr" : "s:10ListableUI21ListLayoutContentItemP1y12CoreGraphics7CGFloatVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var zIndex: Int<\/Type> { get set }<\/Declaration>",
+            "key.bodylength" : 9,
+            "key.bodyoffset" : 7538,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 28,
+            "key.name" : "zIndex",
+            "key.namelength" : 6,
+            "key.nameoffset" : 7524,
+            "key.offset" : 7520,
+            "key.parsed_declaration" : "var zIndex : Int",
+            "key.parsed_scope.end" : 232,
+            "key.parsed_scope.start" : 232,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "Int",
+            "key.typeusr" : "$sSiD",
+            "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp"
           }
         ],
-        "key.typename" : "AnyListLayout.Protocol",
-        "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD",
-        "key.usr" : "s:10ListableUI13AnyListLayoutP"
+        "key.typename" : "ListLayoutContentItem.Protocol",
+        "key.typeusr" : "$s10ListableUI21ListLayoutContentItem_pmD",
+        "key.usr" : "s:10ListableUI21ListLayoutContentItemP"
       },
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol AnyListLayout : AnyObject<\/Declaration>",
+        "key.annotated_decl" : "public final class ListLayoutContent<\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 2309
+            "key.offset" : 7553
           }
         ],
-        "key.bodylength" : 3390,
-        "key.bodyoffset" : 2341,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyListLayout<\/decl.name> : AnyObject<\/decl.protocol>",
+        "key.bodylength" : 5305,
+        "key.bodyoffset" : 7589,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListLayoutContent<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 3416,
-        "key.name" : "AnyListLayout",
-        "key.namelength" : 13,
-        "key.nameoffset" : 2326,
-        "key.offset" : 2316,
-        "key.parsed_declaration" : "public extension AnyListLayout",
-        "key.parsed_scope.end" : 200,
-        "key.parsed_scope.start" : 108,
+        "key.length" : 5335,
+        "key.name" : "ListLayoutContent",
+        "key.namelength" : 17,
+        "key.nameoffset" : 7570,
+        "key.offset" : 7560,
+        "key.parsed_declaration" : "public extension ListLayoutContent",
+        "key.parsed_scope.end" : 421,
+        "key.parsed_scope.start" : 236,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func positionStickySectionHeadersIfNeeded(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.bodylength" : 817,
-            "key.bodyoffset" : 2431,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> positionStickySectionHeadersIfNeeded<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 903,
-            "key.name" : "positionStickySectionHeadersIfNeeded(in:)",
-            "key.namelength" : 74,
-            "key.nameoffset" : 2351,
-            "key.offset" : 2346,
-            "key.parsed_declaration" : "func positionStickySectionHeadersIfNeeded(in collectionView : UICollectionView)",
-            "key.parsed_scope.end" : 135,
-            "key.parsed_scope.start" : 110,
-            "key.substructure" : [
+            "key.annotated_decl" : "final class SectionInfo<\/Declaration>",
+            "key.attributes" : [
               {
-                "key.annotated_decl" : "let visibleContentFrame: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleContentFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 71,
-                "key.name" : "visibleContentFrame",
-                "key.namelength" : 19,
-                "key.nameoffset" : 2529,
-                "key.offset" : 2525,
-                "key.parsed_declaration" : "let visibleContentFrame = self.visibleContentFrame(for: collectionView)",
-                "key.parsed_scope.end" : 116,
-                "key.parsed_scope.start" : 116,
-                "key.related_decls" : [
-                  {
-                    "key.annotated_decl" : "visibleContentFrame(for:)<\/RelatedName>"
-                  }
-                ],
-                "key.typename" : "CGRect",
-                "key.typeusr" : "$sSo6CGRectVD",
-                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE36positionStickySectionHeadersIfNeeded2inySo16UICollectionViewC_tF19visibleContentFrameL_So6CGRectVvp"
+                "key.attribute" : "source.decl.attribute.final",
+                "key.length" : 5,
+                "key.offset" : 7594
               }
             ],
-            "key.typename" : " (Self) -> (UICollectionView) -> ()",
-            "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE36positionStickySectionHeadersIfNeeded2inySo16UICollectionViewC_tF"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func updateOverscrollFooterPosition(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.bodylength" : 903,
-            "key.bodyoffset" : 3338,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateOverscrollFooterPosition<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 983,
-            "key.name" : "updateOverscrollFooterPosition(in:)",
-            "key.namelength" : 68,
-            "key.nameoffset" : 3264,
-            "key.offset" : 3259,
-            "key.parsed_declaration" : "func updateOverscrollFooterPosition(in collectionView : UICollectionView)",
-            "key.parsed_scope.end" : 157,
-            "key.parsed_scope.start" : 137,
+            "key.bodylength" : 1568,
+            "key.bodyoffset" : 7623,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SectionInfo<\/decl.name><\/decl.class>",
+            "key.kind" : "source.lang.swift.decl.class",
+            "key.length" : 1592,
+            "key.name" : "SectionInfo",
+            "key.namelength" : 11,
+            "key.nameoffset" : 7606,
+            "key.offset" : 7600,
+            "key.parsed_declaration" : "final class SectionInfo",
+            "key.parsed_scope.end" : 297,
+            "key.parsed_scope.start" : 238,
             "key.substructure" : [
               {
-                "key.annotated_decl" : "let footer: ListLayoutContent<\/Type>.SupplementaryItemInfo<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> footer<\/decl.name>: ListLayoutContent<\/ref.class>.SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 42,
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let layouts: SectionLayouts<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layouts<\/decl.name>: SectionLayouts<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 28,
+                "key.name" : "layouts",
+                "key.namelength" : 7,
+                "key.nameoffset" : 7636,
+                "key.offset" : 7632,
+                "key.parsed_declaration" : "let layouts : SectionLayouts",
+                "key.parsed_scope.end" : 240,
+                "key.parsed_scope.start" : 240,
+                "key.typename" : "SectionLayouts",
+                "key.typeusr" : "$s10ListableUI14SectionLayoutsVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7layoutsAA0F7LayoutsVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let header: SupplementaryItemInfo<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> header<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 34,
+                "key.name" : "header",
+                "key.namelength" : 6,
+                "key.nameoffset" : 7682,
+                "key.offset" : 7678,
+                "key.parsed_declaration" : "let header : SupplementaryItemInfo",
+                "key.parsed_scope.end" : 242,
+                "key.parsed_scope.start" : 242,
+                "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
+                "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC6headerAC017SupplementaryItemG0Cvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let footer: SupplementaryItemInfo<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> footer<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 34,
                 "key.name" : "footer",
                 "key.namelength" : 6,
-                "key.nameoffset" : 3500,
-                "key.offset" : 3496,
-                "key.parsed_declaration" : "let footer = self.content.overscrollFooter",
-                "key.parsed_scope.end" : 144,
-                "key.parsed_scope.start" : 144,
+                "key.nameoffset" : 7725,
+                "key.offset" : 7721,
+                "key.parsed_declaration" : "let footer : SupplementaryItemInfo",
+                "key.parsed_scope.end" : 243,
+                "key.parsed_scope.start" : 243,
                 "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
                 "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
-                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF6footerL_AA0dE7ContentC21SupplementaryItemInfoCvp"
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC6footerAC017SupplementaryItemG0Cvp"
               },
               {
-                "key.annotated_decl" : "let contentHeight: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var items: [ItemInfo<\/Type>]<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [ItemInfo<\/ref.class>]<\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 22,
+                "key.name" : "items",
+                "key.namelength" : 5,
+                "key.nameoffset" : 7785,
+                "key.offset" : 7781,
+                "key.parsed_declaration" : "var items : [ItemInfo]",
+                "key.parsed_scope.end" : 245,
+                "key.parsed_scope.start" : 245,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "[ListLayoutContent.ItemInfo]",
+                "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC8ItemInfoCGD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC5itemsSayAC04ItemG0CGvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>] { get }<\/Declaration>",
+                "key.bodylength" : 335,
+                "key.bodyoffset" : 7856,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 371,
+                "key.name" : "all",
+                "key.namelength" : 3,
+                "key.nameoffset" : 7825,
+                "key.offset" : 7821,
+                "key.parsed_declaration" : "var all : [ListLayoutContentItem]",
+                "key.parsed_scope.end" : 261,
+                "key.parsed_scope.start" : 247,
+                "key.typename" : "[ListLayoutContentItem]",
+                "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC3allSayAA0cdE4Item_pGvp"
+              },
+              {
+                "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>]<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 51,
-                "key.name" : "contentHeight",
+                "key.length" : 38,
+                "key.name" : "all",
+                "key.namelength" : 3,
+                "key.nameoffset" : 7873,
+                "key.offset" : 7869,
+                "key.parsed_declaration" : "var all : [ListLayoutContentItem] = []",
+                "key.parsed_scope.end" : 248,
+                "key.parsed_scope.start" : 248,
+                "key.related_decls" : [
+                  {
+                    "key.annotated_decl" : "all<\/RelatedName>"
+                  }
+                ],
+                "key.typename" : "[ListLayoutContentItem]",
+                "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC3allSayAA0cdE4Item_pGvgAFL_AHvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "private(set) var contentsFrame: CGRect<\/Type> { get }<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.setter_access.private",
+                    "key.length" : 12,
+                    "key.offset" : 8210
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> contentsFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 26,
+                "key.name" : "contentsFrame",
                 "key.namelength" : 13,
-                "key.nameoffset" : 3568,
-                "key.offset" : 3564,
-                "key.parsed_declaration" : "let contentHeight = self.content.contentSize.height",
-                "key.parsed_scope.end" : 146,
-                "key.parsed_scope.start" : 146,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF13contentHeightL_12CoreGraphics7CGFloatVvp"
+                "key.nameoffset" : 8227,
+                "key.offset" : 8223,
+                "key.parsed_declaration" : "private(set) var contentsFrame : CGRect",
+                "key.parsed_scope.end" : 263,
+                "key.parsed_scope.start" : 263,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.private",
+                "key.typename" : "CGRect",
+                "key.typeusr" : "$sSo6CGRectVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC13contentsFrameSo6CGRectVvp"
               },
               {
-                "key.annotated_decl" : "let viewHeight: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 56,
-                "key.name" : "viewHeight",
-                "key.namelength" : 10,
-                "key.nameoffset" : 3628,
-                "key.offset" : 3624,
-                "key.parsed_declaration" : "let viewHeight = collectionView.contentFrame.size.height",
-                "key.parsed_scope.end" : 147,
-                "key.parsed_scope.start" : 147,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF10viewHeightL_12CoreGraphics7CGFloatVvp"
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "init(layouts: SectionLayouts<\/Type>, header: SupplementaryItemInfo<\/Type>?, footer: SupplementaryItemInfo<\/Type>?, items: [ItemInfo<\/Type>])<\/Declaration>",
+                "key.bodylength" : 271,
+                "key.bodyoffset" : 8451,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layouts<\/decl.var.parameter.argument_label>: SectionLayouts<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [ItemInfo<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 448,
+                "key.name" : "init(layouts:header:footer:items:)",
+                "key.namelength" : 174,
+                "key.nameoffset" : 8275,
+                "key.offset" : 8275,
+                "key.parsed_declaration" : "init(\n    layouts : SectionLayouts,\n    header : SupplementaryItemInfo?,\n    footer : SupplementaryItemInfo?,\n    items : [ItemInfo]\n)",
+                "key.parsed_scope.end" : 279,
+                "key.parsed_scope.start" : 265,
+                "key.substructure" : [
+
+                ],
+                "key.typename" : "(ListLayoutContent.SectionInfo.Type) -> (SectionLayouts, ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, [ListLayoutContent.ItemInfo]) -> ListLayoutContent.SectionInfo",
+                "key.typeusr" : "$s7layouts6header6footer5items10ListableUI17ListLayoutContentC11SectionInfoCAE0J7LayoutsV_AG017SupplementaryItemK0CSgANSayAG0nK0CGtcD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7layouts6header6footer5itemsAeA0F7LayoutsV_AC017SupplementaryItemG0CSgANSayAC0nG0CGtcfc"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "func setContentsFrame()<\/Declaration>",
+                "key.bodylength" : 419,
+                "key.bodyoffset" : 8766,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setContentsFrame<\/decl.name>()<\/decl.function.method.instance>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 445,
+                "key.name" : "setContentsFrame()",
+                "key.namelength" : 18,
+                "key.nameoffset" : 8746,
+                "key.offset" : 8741,
+                "key.parsed_declaration" : "func setContentsFrame()",
+                "key.parsed_scope.end" : 296,
+                "key.parsed_scope.start" : 281,
+                "key.substructure" : [
+                  {
+                    "key.annotated_decl" : "var allFrames: [CGRect<\/Type>]<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> allFrames<\/decl.name>: [CGRect<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 29,
+                    "key.name" : "allFrames",
+                    "key.namelength" : 9,
+                    "key.nameoffset" : 8796,
+                    "key.offset" : 8792,
+                    "key.parsed_declaration" : "var allFrames : [CGRect] = []",
+                    "key.parsed_scope.end" : 283,
+                    "key.parsed_scope.start" : 283,
+                    "key.typename" : "[CGRect]",
+                    "key.typeusr" : "$sSaySo6CGRectVGD",
+                    "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC16setContentsFrameyyF9allFramesL_SaySo6CGRectVGvp"
+                  }
+                ],
+                "key.typename" : "(ListLayoutContent.SectionInfo) -> () -> ()",
+                "key.typeusr" : "$syycD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC16setContentsFrameyyF"
               }
             ],
-            "key.typename" : " (Self) -> (UICollectionView) -> ()",
-            "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF"
+            "key.typename" : "ListLayoutContent.SectionInfo.Type",
+            "key.typeusr" : "$s10ListableUI17ListLayoutContentC11SectionInfoCmD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "func adjustPositionsForLayoutUnderflow(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.bodylength" : 1395,
-            "key.bodyoffset" : 4334,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> adjustPositionsForLayoutUnderflow<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 1478,
-            "key.name" : "adjustPositionsForLayoutUnderflow(in:)",
-            "key.namelength" : 71,
-            "key.nameoffset" : 4257,
-            "key.offset" : 4252,
-            "key.parsed_declaration" : "func adjustPositionsForLayoutUnderflow(in collectionView : UICollectionView)",
-            "key.parsed_scope.end" : 199,
-            "key.parsed_scope.start" : 159,
-            "key.substructure" : [
+            "key.annotated_decl" : "final class SupplementaryItemInfo : ListLayoutContentItem<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.annotated_decl" : "let safeAreaInsets: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 312,
-                "key.name" : "safeAreaInsets",
-                "key.namelength" : 14,
-                "key.nameoffset" : 4607,
-                "key.offset" : 4603,
-                "key.parsed_declaration" : "let safeAreaInsets : CGFloat = {\n    switch self.direction {\n    case .vertical: return collectionView.safeAreaInsets.top + collectionView.safeAreaInsets.bottom\n    case .horizontal: return collectionView.safeAreaInsets.left + collectionView.safeAreaInsets.right\n    }\n}()",
-                "key.parsed_scope.end" : 168,
-                "key.parsed_scope.start" : 168,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF14safeAreaInsetsL_12CoreGraphics7CGFloatVvp"
-              },
+                "key.attribute" : "source.decl.attribute.final",
+                "key.length" : 5,
+                "key.offset" : 9198
+              }
+            ],
+            "key.bodylength" : 1938,
+            "key.bodyoffset" : 9261,
+            "key.elements" : [
               {
-                "key.annotated_decl" : "let contentHeight: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 51,
-                "key.name" : "contentHeight",
-                "key.namelength" : 13,
-                "key.nameoffset" : 4937,
-                "key.offset" : 4933,
-                "key.parsed_declaration" : "let contentHeight = self.content.contentSize.height",
-                "key.parsed_scope.end" : 175,
-                "key.parsed_scope.start" : 175,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF13contentHeightL_12CoreGraphics7CGFloatVvp"
-              },
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 21,
+                "key.offset" : 9234
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SupplementaryItemInfo<\/decl.name> : ListLayoutContentItem<\/ref.protocol><\/decl.class>",
+            "key.inheritedtypes" : [
               {
-                "key.annotated_decl" : "let viewHeight: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 45,
-                "key.name" : "viewHeight",
-                "key.namelength" : 10,
-                "key.nameoffset" : 4997,
-                "key.offset" : 4993,
-                "key.parsed_declaration" : "let viewHeight = collectionView.bounds.height",
-                "key.parsed_scope.end" : 176,
-                "key.parsed_scope.start" : 176,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF10viewHeightL_12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.annotated_decl" : "let additionalOffset: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayout.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> additionalOffset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 171,
-                "key.name" : "additionalOffset",
-                "key.namelength" : 16,
-                "key.nameoffset" : 5060,
-                "key.offset" : 5056,
-                "key.parsed_declaration" : "let additionalOffset = self.behavior.underflow.alignment.offsetFor(\n    contentHeight: contentHeight,\n    viewHeight: viewHeight - safeAreaInsets\n)",
-                "key.parsed_scope.end" : 178,
-                "key.parsed_scope.start" : 178,
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF16additionalOffsetL_12CoreGraphics7CGFloatVvp"
+                "key.name" : "ListLayoutContentItem"
               }
             ],
-            "key.typename" : " (Self) -> (UICollectionView) -> ()",
-            "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
-            "key.usr" : "s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF"
-          }
-        ],
-        "key.typename" : "AnyListLayout.Protocol",
-        "key.typeusr" : "$s10ListableUI13AnyListLayout_pmD",
-        "key.usr" : "s:10ListableUI13AnyListLayoutP"
-      }
-    ]
-  }
-}, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift" : {
-    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 309,
-    "key.offset" : 0,
-    "key.substructure" : [
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public protocol ListLayoutAppearance : Equatable<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 118
-          }
-        ],
-        "key.bodylength" : 139,
-        "key.bodyoffset" : 168,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 9,
-            "key.offset" : 157
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListLayoutAppearance<\/decl.name> : Equatable<\/ref.protocol><\/decl.protocol>",
-        "key.inheritedtypes" : [
-          {
-            "key.name" : "Equatable"
-          }
-        ],
-        "key.kind" : "source.lang.swift.decl.protocol",
-        "key.length" : 183,
-        "key.name" : "ListLayoutAppearance",
-        "key.namelength" : 20,
-        "key.nameoffset" : 134,
-        "key.offset" : 125,
-        "key.parsed_declaration" : "public protocol ListLayoutAppearance : Equatable",
-        "key.parsed_scope.end" : 18,
-        "key.parsed_scope.start" : 11,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "static var `default`: Self<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 202,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift",
-            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
-            "key.kind" : "source.lang.swift.decl.var.static",
-            "key.length" : 35,
-            "key.name" : "default",
-            "key.namelength" : 7,
-            "key.nameoffset" : 184,
-            "key.offset" : 173,
-            "key.parsed_declaration" : "static var `default` : Self",
-            "key.parsed_scope.end" : 13,
-            "key.parsed_scope.start" : 13,
-            "key.typename" : "Self",
-            "key.typeusr" : "$sxD",
-            "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var direction: LayoutDirection<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 251,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 39,
-            "key.name" : "direction",
-            "key.namelength" : 9,
-            "key.nameoffset" : 222,
-            "key.offset" : 218,
-            "key.parsed_declaration" : "var direction : LayoutDirection",
-            "key.parsed_scope.end" : 15,
-            "key.parsed_scope.start" : 15,
-            "key.typename" : "LayoutDirection",
-            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
-            "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "var stickySectionHeaders: Bool<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 5,
-            "key.bodyoffset" : 300,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAppearance.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 39,
-            "key.name" : "stickySectionHeaders",
-            "key.namelength" : 20,
-            "key.nameoffset" : 271,
-            "key.offset" : 267,
-            "key.parsed_declaration" : "var stickySectionHeaders : Bool",
-            "key.parsed_scope.end" : 17,
-            "key.parsed_scope.start" : 17,
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp"
-          }
-        ],
-        "key.typename" : "ListLayoutAppearance.Protocol",
-        "key.typeusr" : "$s10ListableUI20ListLayoutAppearance_pmD",
-        "key.usr" : "s:10ListableUI20ListLayoutAppearanceP"
-      }
-    ]
-  }
-}, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift" : {
-    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 862,
-    "key.offset" : 0,
-    "key.substructure" : [
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct ListLayoutAttributes : Equatable<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 117
-          }
-        ],
-        "key.bodylength" : 525,
-        "key.bodyoffset" : 165,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 9,
-            "key.offset" : 154
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
-        "key.inheritedtypes" : [
-          {
-            "key.name" : "Equatable"
-          }
-        ],
-        "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 567,
-        "key.name" : "ListLayoutAttributes",
-        "key.namelength" : 20,
-        "key.nameoffset" : 131,
-        "key.offset" : 124,
-        "key.parsed_declaration" : "public struct ListLayoutAttributes : Equatable",
-        "key.parsed_scope.end" : 36,
-        "key.parsed_scope.start" : 11,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var contentSize: CGSize<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 24,
-            "key.name" : "contentSize",
-            "key.namelength" : 11,
-            "key.nameoffset" : 179,
-            "key.offset" : 175,
-            "key.parsed_declaration" : "var contentSize : CGSize",
-            "key.parsed_scope.end" : 13,
-            "key.parsed_scope.start" : 13,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "CGSize",
-            "key.typeusr" : "$sSo6CGSizeVD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV11contentSizeSo6CGSizeVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var header: Supplementary<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> header<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 27,
-            "key.name" : "header",
-            "key.namelength" : 6,
-            "key.nameoffset" : 213,
-            "key.offset" : 209,
-            "key.parsed_declaration" : "var header : Supplementary?",
-            "key.parsed_scope.end" : 15,
-            "key.parsed_scope.start" : 15,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "ListLayoutAttributes.Supplementary?",
-            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV6headerAC13SupplementaryVSgvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var footer: Supplementary<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> footer<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 27,
-            "key.name" : "footer",
-            "key.namelength" : 6,
-            "key.nameoffset" : 245,
-            "key.offset" : 241,
-            "key.parsed_declaration" : "var footer : Supplementary?",
-            "key.parsed_scope.end" : 16,
-            "key.parsed_scope.start" : 16,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "ListLayoutAttributes.Supplementary?",
-            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV6footerAC13SupplementaryVSgvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var overscrollFooter: Supplementary<\/Type>?<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 37,
-            "key.name" : "overscrollFooter",
-            "key.namelength" : 16,
-            "key.nameoffset" : 277,
-            "key.offset" : 273,
-            "key.parsed_declaration" : "var overscrollFooter : Supplementary?",
-            "key.parsed_scope.end" : 17,
-            "key.parsed_scope.start" : 17,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "ListLayoutAttributes.Supplementary?",
-            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV16overscrollFooterAC13SupplementaryVSgvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var sections: [Section<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sections<\/decl.name>: [Section<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 24,
-            "key.name" : "sections",
-            "key.namelength" : 8,
-            "key.nameoffset" : 324,
-            "key.offset" : 320,
-            "key.parsed_declaration" : "var sections : [Section]",
-            "key.parsed_scope.end" : 19,
-            "key.parsed_scope.start" : 19,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "[ListLayoutAttributes.Section]",
-            "key.typeusr" : "$sSay10ListableUI20ListLayoutAttributesV7SectionVGD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV8sectionsSayAC7SectionVGvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public struct ListLayoutAttributes<\/Type>.Section : Equatable<\/Type><\/Declaration>",
-            "key.attributes" : [
+            "key.kind" : "source.lang.swift.decl.class",
+            "key.length" : 1996,
+            "key.name" : "SupplementaryItemInfo",
+            "key.namelength" : 21,
+            "key.nameoffset" : 9210,
+            "key.offset" : 9204,
+            "key.parsed_declaration" : "final class SupplementaryItemInfo : ListLayoutContentItem",
+            "key.parsed_scope.end" : 365,
+            "key.parsed_scope.start" : 299,
+            "key.substructure" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 354
-              }
-            ],
-            "key.bodylength" : 140,
-            "key.bodyoffset" : 389,
-            "key.elements" : [
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "static func empty(_ kind: SupplementaryKind<\/Type>) -> SupplementaryItemInfo<\/Type><\/Declaration>",
+                "key.bodylength" : 181,
+                "key.bodyoffset" : 9350,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> empty<\/decl.name>(_<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> SupplementaryItemInfo<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>",
+                "key.kind" : "source.lang.swift.decl.function.method.static",
+                "key.length" : 262,
+                "key.name" : "empty(_:)",
+                "key.namelength" : 33,
+                "key.nameoffset" : 9282,
+                "key.offset" : 9270,
+                "key.parsed_declaration" : "static func empty(_ kind : SupplementaryKind) -> SupplementaryItemInfo",
+                "key.parsed_scope.end" : 308,
+                "key.parsed_scope.start" : 301,
+                "key.substructure" : [
+
+                ],
+                "key.typename" : "(ListLayoutContent.SupplementaryItemInfo.Type) -> (SupplementaryKind) -> ListLayoutContent.SupplementaryItemInfo",
+                "key.typeusr" : "$sy10ListableUI17ListLayoutContentC21SupplementaryItemInfoCAA0F4KindOcD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC5emptyyAeA0F4KindOFZ"
+              },
               {
-                "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 9,
-                "key.offset" : 378
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/ref.struct>.Section<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
-            "key.inheritedtypes" : [
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let kind: SupplementaryKind<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 28,
+                "key.name" : "kind",
+                "key.namelength" : 4,
+                "key.nameoffset" : 9554,
+                "key.offset" : 9550,
+                "key.parsed_declaration" : "let kind : SupplementaryKind",
+                "key.parsed_scope.end" : 310,
+                "key.parsed_scope.start" : 310,
+                "key.typename" : "SupplementaryKind",
+                "key.typeusr" : "$s10ListableUI17SupplementaryKindOD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC4kindAA0F4KindOvp"
+              },
               {
-                "key.name" : "Equatable"
-              }
-            ],
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 169,
-            "key.name" : "Section",
-            "key.namelength" : 7,
-            "key.nameoffset" : 368,
-            "key.offset" : 361,
-            "key.parsed_declaration" : "public struct Section : Equatable",
-            "key.parsed_scope.end" : 27,
-            "key.parsed_scope.start" : 21,
-            "key.substructure" : [
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let layouts: HeaderFooterLayouts<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layouts<\/decl.name>: HeaderFooterLayouts<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 33,
+                "key.name" : "layouts",
+                "key.namelength" : 7,
+                "key.nameoffset" : 9591,
+                "key.offset" : 9587,
+                "key.parsed_declaration" : "let layouts : HeaderFooterLayouts",
+                "key.parsed_scope.end" : 311,
+                "key.parsed_scope.start" : 311,
+                "key.typename" : "HeaderFooterLayouts",
+                "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC7layoutsAA19HeaderFooterLayoutsVvp"
+              },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.annotated_decl" : "let measurer: (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> measurer<\/decl.name>: (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 18,
-                "key.name" : "frame",
-                "key.namelength" : 5,
-                "key.nameoffset" : 402,
-                "key.offset" : 398,
-                "key.parsed_declaration" : "var frame : CGRect",
-                "key.parsed_scope.end" : 22,
-                "key.parsed_scope.start" : 22,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGRect",
-                "key.typeusr" : "$sSo6CGRectVD",
-                "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV5frameSo6CGRectVvp"
+                "key.length" : 45,
+                "key.name" : "measurer",
+                "key.namelength" : 8,
+                "key.nameoffset" : 9633,
+                "key.offset" : 9629,
+                "key.parsed_declaration" : "let measurer : (Sizing.MeasureInfo) -> CGSize",
+                "key.parsed_scope.end" : 312,
+                "key.parsed_scope.start" : 312,
+                "key.typename" : "(Sizing.MeasureInfo) -> CGSize",
+                "key.typeusr" : "$sySo6CGSizeV10ListableUI6SizingO11MeasureInfoVcD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC8measurerySo6CGSizeVAA6SizingO07MeasureH0Vcvp"
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var header: Supplementary<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> header<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+                "key.annotated_decl" : "let isPopulated: Bool<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isPopulated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 27,
-                "key.name" : "header",
-                "key.namelength" : 6,
-                "key.nameoffset" : 438,
-                "key.offset" : 434,
-                "key.parsed_declaration" : "var header : Supplementary?",
-                "key.parsed_scope.end" : 24,
-                "key.parsed_scope.start" : 24,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "ListLayoutAttributes.Supplementary?",
-                "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
-                "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV6headerAC13SupplementaryVSgvp"
+                "key.length" : 22,
+                "key.name" : "isPopulated",
+                "key.namelength" : 11,
+                "key.nameoffset" : 9704,
+                "key.offset" : 9700,
+                "key.parsed_declaration" : "let isPopulated : Bool",
+                "key.parsed_scope.end" : 314,
+                "key.parsed_scope.start" : 314,
+                "key.typename" : "Bool",
+                "key.typeusr" : "$sSbD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC11isPopulatedSbvp"
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var footer: Supplementary<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> footer<\/decl.name>: Supplementary<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+                "key.annotated_decl" : "var size: CGSize<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 27,
-                "key.name" : "footer",
-                "key.namelength" : 6,
-                "key.nameoffset" : 474,
-                "key.offset" : 470,
-                "key.parsed_declaration" : "var footer : Supplementary?",
-                "key.parsed_scope.end" : 25,
-                "key.parsed_scope.start" : 25,
+                "key.length" : 25,
+                "key.name" : "size",
+                "key.namelength" : 4,
+                "key.nameoffset" : 9760,
+                "key.offset" : 9756,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP4sizeSo6CGSizeVvp"
+                  }
+                ],
+                "key.parsed_declaration" : "var size : CGSize = .zero",
+                "key.parsed_scope.end" : 316,
+                "key.parsed_scope.start" : 316,
                 "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "ListLayoutAttributes.Supplementary?",
-                "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVSgD",
-                "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV6footerAC13SupplementaryVSgvp"
+                "key.typename" : "CGSize",
+                "key.typeusr" : "$sSo6CGSizeVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC4sizeSo6CGSizeVvp"
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var items: [Item<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [Item<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
+                "key.annotated_decl" : "var x: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 18,
-                "key.name" : "items",
-                "key.namelength" : 5,
-                "key.nameoffset" : 510,
-                "key.offset" : 506,
-                "key.parsed_declaration" : "var items : [Item]",
-                "key.parsed_scope.end" : 26,
-                "key.parsed_scope.start" : 26,
+                "key.length" : 23,
+                "key.name" : "x",
+                "key.namelength" : 1,
+                "key.nameoffset" : 9803,
+                "key.offset" : 9799,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP1x12CoreGraphics7CGFloatVvp"
+                  }
+                ],
+                "key.parsed_declaration" : "var x : CGFloat = .zero",
+                "key.parsed_scope.end" : 318,
+                "key.parsed_scope.start" : 318,
                 "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "[ListLayoutAttributes.Item]",
-                "key.typeusr" : "$sSay10ListableUI20ListLayoutAttributesV4ItemVGD",
-                "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV5itemsSayAC4ItemVGvp"
-              }
-            ],
-            "key.typename" : "ListLayoutAttributes.Section.Type",
-            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV7SectionVmD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV7SectionV"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public struct ListLayoutAttributes<\/Type>.Supplementary : Equatable<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 540
-              }
-            ],
-            "key.bodylength" : 32,
-            "key.bodyoffset" : 581,
-            "key.elements" : [
-              {
-                "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 9,
-                "key.offset" : 570
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/ref.struct>.Supplementary<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
-            "key.inheritedtypes" : [
-              {
-                "key.name" : "Equatable"
-              }
-            ],
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 67,
-            "key.name" : "Supplementary",
-            "key.namelength" : 13,
-            "key.nameoffset" : 554,
-            "key.offset" : 547,
-            "key.parsed_declaration" : "public struct Supplementary : Equatable",
-            "key.parsed_scope.end" : 31,
-            "key.parsed_scope.start" : 29,
-            "key.substructure" : [
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC1x12CoreGraphics7CGFloatVvp"
+              },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.annotated_decl" : "var pinnedX: CGFloat<\/Type>?<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pinnedX<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 18,
-                "key.name" : "frame",
-                "key.namelength" : 5,
-                "key.nameoffset" : 594,
-                "key.offset" : 590,
-                "key.parsed_declaration" : "var frame : CGRect",
-                "key.parsed_scope.end" : 30,
-                "key.parsed_scope.start" : 30,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGRect",
-                "key.typeusr" : "$sSo6CGRectVD",
-                "key.usr" : "s:10ListableUI20ListLayoutAttributesV13SupplementaryV5frameSo6CGRectVvp"
-              }
+                "key.length" : 28,
+                "key.name" : "pinnedX",
+                "key.namelength" : 7,
+                "key.nameoffset" : 9835,
+                "key.offset" : 9831,
+                "key.parsed_declaration" : "var pinnedX : CGFloat? = nil",
+                "key.parsed_scope.end" : 319,
+                "key.parsed_scope.start" : 319,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "CGFloat?",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC7pinnedX12CoreGraphics7CGFloatVSgvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var y: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 23,
+                "key.name" : "y",
+                "key.namelength" : 1,
+                "key.nameoffset" : 9881,
+                "key.offset" : 9877,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP1y12CoreGraphics7CGFloatVvp"
+                  }
+                ],
+                "key.parsed_declaration" : "var y : CGFloat = .zero",
+                "key.parsed_scope.end" : 321,
+                "key.parsed_scope.start" : 321,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC1y12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var pinnedY: CGFloat<\/Type>?<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pinnedY<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 28,
+                "key.name" : "pinnedY",
+                "key.namelength" : 7,
+                "key.nameoffset" : 9913,
+                "key.offset" : 9909,
+                "key.parsed_declaration" : "var pinnedY : CGFloat? = nil",
+                "key.parsed_scope.end" : 322,
+                "key.parsed_scope.start" : 322,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "CGFloat?",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC7pinnedY12CoreGraphics7CGFloatVSgvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var zIndex: Int<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 20,
+                "key.name" : "zIndex",
+                "key.namelength" : 6,
+                "key.nameoffset" : 9959,
+                "key.offset" : 9955,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp"
+                  }
+                ],
+                "key.parsed_declaration" : "var zIndex : Int = 0",
+                "key.parsed_scope.end" : 324,
+                "key.parsed_scope.start" : 324,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "Int",
+                "key.typeusr" : "$sSiD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC6zIndexSivp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var defaultFrame: CGRect<\/Type> { get }<\/Declaration>",
+                "key.bodylength" : 130,
+                "key.bodyoffset" : 10020,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 158,
+                "key.name" : "defaultFrame",
+                "key.namelength" : 12,
+                "key.nameoffset" : 9997,
+                "key.offset" : 9993,
+                "key.parsed_declaration" : "var defaultFrame : CGRect",
+                "key.parsed_scope.end" : 331,
+                "key.parsed_scope.start" : 326,
+                "key.typename" : "CGRect",
+                "key.typeusr" : "$sSo6CGRectVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC12defaultFrameSo6CGRectVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var visibleFrame: CGRect<\/Type> { get }<\/Declaration>",
+                "key.bodylength" : 220,
+                "key.bodyoffset" : 10196,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> visibleFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 248,
+                "key.name" : "visibleFrame",
+                "key.namelength" : 12,
+                "key.nameoffset" : 10173,
+                "key.offset" : 10169,
+                "key.parsed_declaration" : "var visibleFrame : CGRect",
+                "key.parsed_scope.end" : 341,
+                "key.parsed_scope.start" : 333,
+                "key.typename" : "CGRect",
+                "key.typeusr" : "$sSo6CGRectVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC12visibleFrameSo6CGRectVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "init(kind: SupplementaryKind<\/Type>, layouts: HeaderFooterLayouts<\/Type>, isPopulated: Bool<\/Type>, measurer: @escaping (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type>)<\/Declaration>",
+                "key.bodylength" : 166,
+                "key.bodyoffset" : 10628,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(kind<\/decl.var.parameter.argument_label>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: HeaderFooterLayouts<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, isPopulated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, measurer<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 360,
+                "key.name" : "init(kind:layouts:isPopulated:measurer:)",
+                "key.namelength" : 191,
+                "key.nameoffset" : 10435,
+                "key.offset" : 10435,
+                "key.parsed_declaration" : "init(\n    kind : SupplementaryKind,\n    layouts : HeaderFooterLayouts,\n    isPopulated: Bool,\n    measurer : @escaping (Sizing.MeasureInfo) -> CGSize\n)",
+                "key.parsed_scope.end" : 354,
+                "key.parsed_scope.start" : 343,
+                "key.substructure" : [
+
+                ],
+                "key.typename" : "(ListLayoutContent.SupplementaryItemInfo.Type) -> (SupplementaryKind, HeaderFooterLayouts, Bool, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.SupplementaryItemInfo",
+                "key.typeusr" : "$s4kind7layouts11isPopulated8measurer10ListableUI17ListLayoutContentC21SupplementaryItemInfoCAE0K4KindO_AE19HeaderFooterLayoutsVSbSo6CGSizeVAE6SizingO07MeasureM0VctcD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC4kind7layouts11isPopulated8measurerAeA0F4KindO_AA19HeaderFooterLayoutsVSbSo6CGSizeVAA6SizingO07MeasureH0Vctcfc"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "func layoutAttributes(with indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
+                "key.bodylength" : 285,
+                "key.bodyoffset" : 10908,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(with<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 381,
+                "key.name" : "layoutAttributes(with:)",
+                "key.namelength" : 44,
+                "key.nameoffset" : 10818,
+                "key.offset" : 10813,
+                "key.parsed_declaration" : "func layoutAttributes(with indexPath : IndexPath) -> UICollectionViewLayoutAttributes",
+                "key.parsed_scope.end" : 364,
+                "key.parsed_scope.start" : 356,
+                "key.substructure" : [
+                  {
+                    "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 114,
+                    "key.name" : "attributes",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 10925,
+                    "key.offset" : 10921,
+                    "key.parsed_declaration" : "let attributes = UICollectionViewLayoutAttributes(forSupplementaryViewOfKind: self.kind.rawValue, with: indexPath)",
+                    "key.parsed_scope.end" : 358,
+                    "key.parsed_scope.start" : 358,
+                    "key.typename" : "UICollectionViewLayoutAttributes",
+                    "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCD",
+                    "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC16layoutAttributes4withSo016UICollectionViewdJ0C10Foundation9IndexPathV_tF10attributesL_AIvp"
+                  }
+                ],
+                "key.typename" : "(ListLayoutContent.SupplementaryItemInfo) -> (IndexPath) -> UICollectionViewLayoutAttributes",
+                "key.typeusr" : "$s4withSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_tcD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC16layoutAttributes4withSo016UICollectionViewdJ0C10Foundation9IndexPathV_tF"
+              }
             ],
-            "key.typename" : "ListLayoutAttributes.Supplementary.Type",
-            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV13SupplementaryVmD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV13SupplementaryV"
+            "key.typename" : "ListLayoutContent.SupplementaryItemInfo.Type",
+            "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCmD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public struct ListLayoutAttributes<\/Type>.Item : Equatable<\/Type><\/Declaration>",
+            "key.annotated_decl" : "final class ItemInfo : ListLayoutContentItem<\/Type><\/Declaration>",
             "key.attributes" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 624
+                "key.attribute" : "source.decl.attribute.final",
+                "key.length" : 5,
+                "key.offset" : 11211
               }
             ],
-            "key.bodylength" : 32,
-            "key.bodyoffset" : 656,
+            "key.bodylength" : 1631,
+            "key.bodyoffset" : 11261,
             "key.elements" : [
               {
                 "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 9,
-                "key.offset" : 645
+                "key.length" : 21,
+                "key.offset" : 11234
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/ref.struct>.Item<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemInfo<\/decl.name> : ListLayoutContentItem<\/ref.protocol><\/decl.class>",
             "key.inheritedtypes" : [
               {
-                "key.name" : "Equatable"
+                "key.name" : "ListLayoutContentItem"
               }
             ],
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 58,
-            "key.name" : "Item",
-            "key.namelength" : 4,
-            "key.nameoffset" : 638,
-            "key.offset" : 631,
-            "key.parsed_declaration" : "public struct Item : Equatable",
-            "key.parsed_scope.end" : 35,
-            "key.parsed_scope.start" : 33,
+            "key.kind" : "source.lang.swift.decl.class",
+            "key.length" : 1676,
+            "key.name" : "ItemInfo",
+            "key.namelength" : 8,
+            "key.nameoffset" : 11223,
+            "key.offset" : 11217,
+            "key.parsed_declaration" : "final class ItemInfo : ListLayoutContentItem",
+            "key.parsed_scope.end" : 420,
+            "key.parsed_scope.start" : 368,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.annotated_decl" : "var delegateProvidedIndexPath: IndexPath<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> delegateProvidedIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 18,
+                "key.length" : 41,
+                "key.name" : "delegateProvidedIndexPath",
+                "key.namelength" : 25,
+                "key.nameoffset" : 11274,
+                "key.offset" : 11270,
+                "key.parsed_declaration" : "var delegateProvidedIndexPath : IndexPath",
+                "key.parsed_scope.end" : 370,
+                "key.parsed_scope.start" : 370,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "IndexPath",
+                "key.typeusr" : "$s10Foundation9IndexPathVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC25delegateProvidedIndexPath10Foundation0jK0Vvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var liveIndexPath: IndexPath<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> liveIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 29,
+                "key.name" : "liveIndexPath",
+                "key.namelength" : 13,
+                "key.nameoffset" : 11324,
+                "key.offset" : 11320,
+                "key.parsed_declaration" : "var liveIndexPath : IndexPath",
+                "key.parsed_scope.end" : 371,
+                "key.parsed_scope.start" : 371,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "IndexPath",
+                "key.typeusr" : "$s10Foundation9IndexPathVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC13liveIndexPath10Foundation0iJ0Vvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let layouts: ItemLayouts<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layouts<\/decl.name>: ItemLayouts<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 25,
+                "key.name" : "layouts",
+                "key.namelength" : 7,
+                "key.nameoffset" : 11371,
+                "key.offset" : 11367,
+                "key.parsed_declaration" : "let layouts : ItemLayouts",
+                "key.parsed_scope.end" : 373,
+                "key.parsed_scope.start" : 373,
+                "key.typename" : "ItemLayouts",
+                "key.typeusr" : "$s10ListableUI11ItemLayoutsVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC7layoutsAA0F7LayoutsVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 61,
+                "key.name" : "insertAndRemoveAnimations",
+                "key.namelength" : 25,
+                "key.nameoffset" : 11414,
+                "key.offset" : 11410,
+                "key.parsed_declaration" : "let insertAndRemoveAnimations : ItemInsertAndRemoveAnimations",
+                "key.parsed_scope.end" : 375,
+                "key.parsed_scope.start" : 375,
+                "key.typename" : "ItemInsertAndRemoveAnimations",
+                "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC25insertAndRemoveAnimationsAA0f6InsertijK0Vvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "let measurer: (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> measurer<\/decl.name>: (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 45,
+                "key.name" : "measurer",
+                "key.namelength" : 8,
+                "key.nameoffset" : 11484,
+                "key.offset" : 11480,
+                "key.parsed_declaration" : "let measurer : (Sizing.MeasureInfo) -> CGSize",
+                "key.parsed_scope.end" : 376,
+                "key.parsed_scope.start" : 376,
+                "key.typename" : "(Sizing.MeasureInfo) -> CGSize",
+                "key.typeusr" : "$sySo6CGSizeV10ListableUI6SizingO11MeasureInfoVcD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC8measurerySo6CGSizeVAA6SizingO07MeasureG0Vcvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var position: ItemPosition<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> position<\/decl.name>: ItemPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 37,
+                "key.name" : "position",
+                "key.namelength" : 8,
+                "key.nameoffset" : 11547,
+                "key.offset" : 11543,
+                "key.parsed_declaration" : "var position : ItemPosition = .single",
+                "key.parsed_scope.end" : 378,
+                "key.parsed_scope.start" : 378,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "ItemPosition",
+                "key.typeusr" : "$s10ListableUI12ItemPositionOD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC8positionAA0F8PositionOvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var size: CGSize<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 25,
+                "key.name" : "size",
+                "key.namelength" : 4,
+                "key.nameoffset" : 11610,
+                "key.offset" : 11606,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP4sizeSo6CGSizeVvp"
+                  }
+                ],
+                "key.parsed_declaration" : "var size : CGSize = .zero",
+                "key.parsed_scope.end" : 380,
+                "key.parsed_scope.start" : 380,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "CGSize",
+                "key.typeusr" : "$sSo6CGSizeVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC4sizeSo6CGSizeVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var x: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 23,
+                "key.name" : "x",
+                "key.namelength" : 1,
+                "key.nameoffset" : 11661,
+                "key.offset" : 11657,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP1x12CoreGraphics7CGFloatVvp"
+                  }
+                ],
+                "key.parsed_declaration" : "var x : CGFloat = .zero",
+                "key.parsed_scope.end" : 382,
+                "key.parsed_scope.start" : 382,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC1x12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var y: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 23,
+                "key.name" : "y",
+                "key.namelength" : 1,
+                "key.nameoffset" : 11693,
+                "key.offset" : 11689,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP1y12CoreGraphics7CGFloatVvp"
+                  }
+                ],
+                "key.parsed_declaration" : "var y : CGFloat = .zero",
+                "key.parsed_scope.end" : 383,
+                "key.parsed_scope.start" : 383,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC1y12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var zIndex: Int<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 20,
+                "key.name" : "zIndex",
+                "key.namelength" : 6,
+                "key.nameoffset" : 11734,
+                "key.offset" : 11730,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp"
+                  }
+                ],
+                "key.parsed_declaration" : "var zIndex : Int = 0",
+                "key.parsed_scope.end" : 385,
+                "key.parsed_scope.start" : 385,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.typename" : "Int",
+                "key.typeusr" : "$sSiD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC6zIndexSivp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var frame: CGRect<\/Type> { get }<\/Declaration>",
+                "key.bodylength" : 130,
+                "key.bodyoffset" : 11788,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 151,
                 "key.name" : "frame",
                 "key.namelength" : 5,
-                "key.nameoffset" : 669,
-                "key.offset" : 665,
+                "key.nameoffset" : 11772,
+                "key.offset" : 11768,
                 "key.parsed_declaration" : "var frame : CGRect",
-                "key.parsed_scope.end" : 34,
-                "key.parsed_scope.start" : 34,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+                "key.parsed_scope.end" : 392,
+                "key.parsed_scope.start" : 387,
                 "key.typename" : "CGRect",
                 "key.typeusr" : "$sSo6CGRectVD",
-                "key.usr" : "s:10ListableUI20ListLayoutAttributesV4ItemV5frameSo6CGRectVvp"
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC5frameSo6CGRectVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "init(delegateProvidedIndexPath: IndexPath<\/Type>, liveIndexPath: IndexPath<\/Type>, layouts: ItemLayouts<\/Type>, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>, measurer: @escaping (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type>)<\/Declaration>",
+                "key.bodylength" : 321,
+                "key.bodyoffset" : 12214,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(delegateProvidedIndexPath<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, liveIndexPath<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: ItemLayouts<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, measurer<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 599,
+                "key.name" : "init(delegateProvidedIndexPath:liveIndexPath:layouts:insertAndRemoveAnimations:measurer:)",
+                "key.namelength" : 275,
+                "key.nameoffset" : 11937,
+                "key.offset" : 11937,
+                "key.parsed_declaration" : "init(\n    delegateProvidedIndexPath : IndexPath,\n    liveIndexPath : IndexPath,\n    layouts : ItemLayouts,\n    insertAndRemoveAnimations : ItemInsertAndRemoveAnimations,\n    measurer : @escaping (Sizing.MeasureInfo) -> CGSize\n)",
+                "key.parsed_scope.end" : 409,
+                "key.parsed_scope.start" : 394,
+                "key.substructure" : [
+
+                ],
+                "key.typename" : "(ListLayoutContent.ItemInfo.Type) -> (IndexPath, IndexPath, ItemLayouts, ItemInsertAndRemoveAnimations, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.ItemInfo",
+                "key.typeusr" : "$s25delegateProvidedIndexPath04livecD07layouts25insertAndRemoveAnimations8measurer10ListableUI17ListLayoutContentC8ItemInfoC10Foundation0cD0V_AmF0Q7LayoutsVAF0q6InserthiJ0VSo6CGSizeVAF6SizingO07MeasureR0VctcD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC25delegateProvidedIndexPath04livejK07layouts25insertAndRemoveAnimations8measurerAE10Foundation0jK0V_AmA0F7LayoutsVAA0f6InsertopQ0VSo6CGSizeVAA6SizingO07MeasureG0Vctcfc"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "func layoutAttributes(with indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
+                "key.bodylength" : 237,
+                "key.bodyoffset" : 12649,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(with<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 333,
+                "key.name" : "layoutAttributes(with:)",
+                "key.namelength" : 44,
+                "key.nameoffset" : 12559,
+                "key.offset" : 12554,
+                "key.parsed_declaration" : "func layoutAttributes(with indexPath : IndexPath) -> UICollectionViewLayoutAttributes",
+                "key.parsed_scope.end" : 419,
+                "key.parsed_scope.start" : 411,
+                "key.substructure" : [
+                  {
+                    "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 73,
+                    "key.name" : "attributes",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 12666,
+                    "key.offset" : 12662,
+                    "key.parsed_declaration" : "let attributes = UICollectionViewLayoutAttributes(forCellWith: indexPath)",
+                    "key.parsed_scope.end" : 413,
+                    "key.parsed_scope.start" : 413,
+                    "key.typename" : "UICollectionViewLayoutAttributes",
+                    "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCD",
+                    "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC16layoutAttributes4withSo016UICollectionViewdI0C10Foundation9IndexPathV_tF10attributesL_AIvp"
+                  }
+                ],
+                "key.typename" : "(ListLayoutContent.ItemInfo) -> (IndexPath) -> UICollectionViewLayoutAttributes",
+                "key.typeusr" : "$s4withSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_tcD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC16layoutAttributes4withSo016UICollectionViewdI0C10Foundation9IndexPathV_tF"
               }
             ],
-            "key.typename" : "ListLayoutAttributes.Item.Type",
-            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesV4ItemVmD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV4ItemV"
+            "key.typename" : "ListLayoutContent.ItemInfo.Type",
+            "key.typeusr" : "$s10ListableUI17ListLayoutContentC8ItemInfoCmD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC"
           }
         ],
-        "key.typename" : "ListLayoutAttributes.Type",
-        "key.typeusr" : "$s10ListableUI20ListLayoutAttributesVmD",
-        "key.usr" : "s:10ListableUI20ListLayoutAttributesV"
+        "key.typename" : "ListLayoutContent.Type",
+        "key.typeusr" : "$s10ListableUI17ListLayoutContentCmD",
+        "key.usr" : "s:10ListableUI17ListLayoutContentC"
       },
       {
-        "key.annotated_decl" : "public struct ListLayoutAttributes : Equatable<\/Type><\/Declaration>",
-        "key.bodylength" : 134,
-        "key.bodyoffset" : 726,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutAttributes<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
+        "key.annotated_decl" : "struct CGRect<\/Declaration>",
+        "key.bodylength" : 383,
+        "key.bodyoffset" : 12916,
+        "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator14.2.sdk\/System\/Library\/Frameworks\/CoreGraphics.framework\/Headers\/CGGeometry.h",
+        "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CGRect<\/decl.name><\/decl.struct>",
+        "key.is_system" : true,
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 167,
-        "key.name" : "ListLayoutAttributes",
-        "key.namelength" : 20,
-        "key.nameoffset" : 704,
-        "key.offset" : 694,
-        "key.parsed_declaration" : "extension ListLayoutAttributes",
-        "key.parsed_scope.end" : 46,
-        "key.parsed_scope.start" : 39,
+        "key.length" : 402,
+        "key.modulename" : "CoreGraphics.CGGeometry",
+        "key.name" : "CGRect",
+        "key.namelength" : 6,
+        "key.nameoffset" : 12908,
+        "key.offset" : 12898,
+        "key.parsed_declaration" : "extension CGRect",
+        "key.parsed_scope.end" : 443,
+        "key.parsed_scope.start" : 424,
         "key.substructure" : [
           {
-            "key.annotated_decl" : "var stringRepresentation: String<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 92,
-            "key.bodyoffset" : 766,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> stringRepresentation<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 128,
-            "key.name" : "stringRepresentation",
-            "key.namelength" : 20,
-            "key.nameoffset" : 735,
-            "key.offset" : 731,
-            "key.parsed_declaration" : "var stringRepresentation : String",
-            "key.parsed_scope.end" : 45,
-            "key.parsed_scope.start" : 40,
-            "key.typename" : "String",
-            "key.typeusr" : "$sSSD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV20stringRepresentationSSvp"
-          },
-          {
-            "key.annotated_decl" : "var output: String<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutAttributes.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> output<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-            "key.kind" : "source.lang.swift.decl.var.local",
-            "key.length" : 15,
-            "key.name" : "output",
-            "key.namelength" : 6,
-            "key.nameoffset" : 779,
-            "key.offset" : 775,
-            "key.parsed_declaration" : "var output = \"\"",
-            "key.parsed_scope.end" : 41,
-            "key.parsed_scope.start" : 41,
-            "key.typename" : "String",
-            "key.typeusr" : "$sSSD",
-            "key.usr" : "s:10ListableUI20ListLayoutAttributesV20stringRepresentationSSvg6outputL_SSvp"
+            "key.annotated_decl" : "static func unioned(from rects: [CGRect<\/Type>]) -> CGRect<\/Type><\/Declaration>",
+            "key.bodylength" : 322,
+            "key.bodyoffset" : 12975,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> unioned<\/decl.name>(from<\/decl.var.parameter.argument_label> rects<\/decl.var.parameter.name>: [CGRect<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
+            "key.kind" : "source.lang.swift.decl.function.method.static",
+            "key.length" : 377,
+            "key.name" : "unioned(from:)",
+            "key.namelength" : 30,
+            "key.nameoffset" : 12933,
+            "key.offset" : 12921,
+            "key.parsed_declaration" : "static func unioned(from rects : [CGRect]) -> CGRect",
+            "key.parsed_scope.end" : 442,
+            "key.parsed_scope.start" : 425,
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "let rects: [CGRect<\/Type>]<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rects<\/decl.name>: [CGRect<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 68,
+                "key.name" : "rects",
+                "key.namelength" : 5,
+                "key.nameoffset" : 12997,
+                "key.offset" : 12993,
+                "key.parsed_declaration" : "let rects = rects.filter {\n    $0.isEmpty == false\n}",
+                "key.parsed_scope.end" : 427,
+                "key.parsed_scope.start" : 427,
+                "key.typename" : "[CGRect]",
+                "key.typeusr" : "$sSaySo6CGRectVGD",
+                "key.usr" : "s:So6CGRectV10ListableUIE7unioned4fromABSayABG_tFZ5rectsL0_AFvp"
+              },
+              {
+                "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 17,
+                "key.name" : "frame",
+                "key.namelength" : 5,
+                "key.nameoffset" : 13164,
+                "key.offset" : 13160,
+                "key.parsed_declaration" : "var frame = first",
+                "key.parsed_scope.end" : 435,
+                "key.parsed_scope.start" : 435,
+                "key.typename" : "CGRect",
+                "key.typeusr" : "$sSo6CGRectVD",
+                "key.usr" : "s:So6CGRectV10ListableUIE7unioned4fromABSayABG_tFZ5frameL_ABvp"
+              }
+            ],
+            "key.typename" : "(CGRect.Type) -> ([CGRect]) -> CGRect",
+            "key.typeusr" : "$s4fromSo6CGRectVSayACG_tcD",
+            "key.usr" : "s:So6CGRectV10ListableUIE7unioned4fromABSayABG_tFZ"
           }
         ],
-        "key.typename" : "ListLayoutAttributes.Type",
-        "key.typeusr" : "$s10ListableUI20ListLayoutAttributesVmD",
-        "key.usr" : "s:10ListableUI20ListLayoutAttributesV"
+        "key.typename" : "CGRect.Type",
+        "key.typeusr" : "$sSo6CGRectVmD",
+        "key.usr" : "c:@S@CGRect"
       }
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 13388,
+    "key.length" : 401,
     "key.offset" : 0,
     "key.substructure" : [
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public final class ListLayoutContent<\/Declaration>",
+        "key.annotated_decl" : "public struct ListLayoutDefaults<\/Declaration>",
         "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.final",
-            "key.length" : 5,
-            "key.offset" : 121
-          },
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 114
+            "key.offset" : 116
           }
         ],
-        "key.bodylength" : 7212,
-        "key.bodyoffset" : 152,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListLayoutContent<\/decl.name><\/decl.class>",
-        "key.kind" : "source.lang.swift.decl.class",
-        "key.length" : 7238,
-        "key.name" : "ListLayoutContent",
-        "key.namelength" : 17,
-        "key.nameoffset" : 133,
-        "key.offset" : 127,
-        "key.parsed_declaration" : "public final class ListLayoutContent",
-        "key.parsed_scope.end" : 223,
+        "key.bodylength" : 249,
+        "key.bodyoffset" : 150,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutDefaults<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 277,
+        "key.name" : "ListLayoutDefaults",
+        "key.namelength" : 18,
+        "key.nameoffset" : 130,
+        "key.offset" : 123,
+        "key.parsed_declaration" : "public struct ListLayoutDefaults",
+        "key.parsed_scope.end" : 19,
         "key.parsed_scope.start" : 11,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var contentSize: CGSize<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var itemInsertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 155
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemInsertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 24,
-            "key.name" : "contentSize",
-            "key.namelength" : 11,
-            "key.nameoffset" : 161,
-            "key.offset" : 157,
-            "key.parsed_declaration" : "var contentSize : CGSize",
+            "key.length" : 65,
+            "key.name" : "itemInsertAndRemoveAnimations",
+            "key.namelength" : 29,
+            "key.nameoffset" : 166,
+            "key.offset" : 162,
+            "key.parsed_declaration" : "public var itemInsertAndRemoveAnimations : ItemInsertAndRemoveAnimations",
             "key.parsed_scope.end" : 13,
             "key.parsed_scope.start" : 13,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "CGSize",
-            "key.typeusr" : "$sSo6CGSizeVD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC11contentSizeSo6CGSizeVvp"
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "ItemInsertAndRemoveAnimations",
+            "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD",
+            "key.usr" : "s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAA04ItemghiJ0Vvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let header: SupplementaryItemInfo<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> header<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 34,
-            "key.name" : "header",
-            "key.namelength" : 6,
-            "key.nameoffset" : 199,
-            "key.offset" : 195,
-            "key.parsed_declaration" : "let header : SupplementaryItemInfo",
-            "key.parsed_scope.end" : 15,
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public init(itemInsertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>)<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 237
+              }
+            ],
+            "key.bodylength" : 80,
+            "key.bodyoffset" : 317,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(itemInsertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 154,
+            "key.name" : "init(itemInsertAndRemoveAnimations:)",
+            "key.namelength" : 67,
+            "key.nameoffset" : 244,
+            "key.offset" : 244,
+            "key.parsed_declaration" : "public init(itemInsertAndRemoveAnimations : ItemInsertAndRemoveAnimations)",
+            "key.parsed_scope.end" : 18,
             "key.parsed_scope.start" : 15,
-            "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
-            "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC6headerAC21SupplementaryItemInfoCvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let footer: SupplementaryItemInfo<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> footer<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 34,
-            "key.name" : "footer",
-            "key.namelength" : 6,
-            "key.nameoffset" : 238,
-            "key.offset" : 234,
-            "key.parsed_declaration" : "let footer : SupplementaryItemInfo",
-            "key.parsed_scope.end" : 16,
-            "key.parsed_scope.start" : 16,
-            "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
-            "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC6footerAC21SupplementaryItemInfoCvp"
-          },
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ListLayoutDefaults.Type) -> (ItemInsertAndRemoveAnimations) -> ListLayoutDefaults",
+            "key.typeusr" : "$s29itemInsertAndRemoveAnimations10ListableUI18ListLayoutDefaultsVAB04ItembcdE0V_tcD",
+            "key.usr" : "s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAcA04ItemghiJ0V_tcfc"
+          }
+        ],
+        "key.typename" : "ListLayoutDefaults.Type",
+        "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVmD",
+        "key.usr" : "s:10ListableUI18ListLayoutDefaultsV"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 3804,
+    "key.offset" : 0,
+    "key.substructure" : [
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public struct ListLayoutScrollViewProperties<\/Declaration>",
+        "key.attributes" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let overscrollFooter: SupplementaryItemInfo<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> overscrollFooter<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 44,
-            "key.name" : "overscrollFooter",
-            "key.namelength" : 16,
-            "key.nameoffset" : 282,
-            "key.offset" : 278,
-            "key.parsed_declaration" : "let overscrollFooter : SupplementaryItemInfo",
-            "key.parsed_scope.end" : 18,
-            "key.parsed_scope.start" : 18,
-            "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
-            "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC16overscrollFooterAC21SupplementaryItemInfoCvp"
-          },
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 122
+          }
+        ],
+        "key.bodylength" : 3634,
+        "key.bodyoffset" : 168,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutScrollViewProperties<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 3674,
+        "key.name" : "ListLayoutScrollViewProperties",
+        "key.namelength" : 30,
+        "key.nameoffset" : 136,
+        "key.offset" : 129,
+        "key.parsed_declaration" : "public struct ListLayoutScrollViewProperties",
+        "key.parsed_scope.end" : 99,
+        "key.parsed_scope.start" : 11,
+        "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "let sections: [SectionInfo<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sections<\/decl.name>: [SectionInfo<\/ref.class>]<\/decl.var.type><\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var isPagingEnabled: Bool<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 173
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isPagingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 28,
-            "key.name" : "sections",
-            "key.namelength" : 8,
-            "key.nameoffset" : 336,
-            "key.offset" : 332,
-            "key.parsed_declaration" : "let sections : [SectionInfo]",
-            "key.parsed_scope.end" : 20,
-            "key.parsed_scope.start" : 20,
-            "key.typename" : "[ListLayoutContent.SectionInfo]",
-            "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC11SectionInfoCGD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC8sectionsSayAC11SectionInfoCGvp"
+            "key.length" : 26,
+            "key.name" : "isPagingEnabled",
+            "key.namelength" : 15,
+            "key.nameoffset" : 184,
+            "key.offset" : 180,
+            "key.parsed_declaration" : "public var isPagingEnabled : Bool",
+            "key.parsed_scope.end" : 13,
+            "key.parsed_scope.start" : 13,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabledSbvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>] { get }<\/Declaration>",
-            "key.bodylength" : 296,
-            "key.bodyoffset" : 405,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 216
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentInsetAdjustmentBehavior<\/decl.name>: ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 332,
-            "key.name" : "all",
-            "key.namelength" : 3,
-            "key.nameoffset" : 374,
-            "key.offset" : 370,
-            "key.parsed_declaration" : "var all : [ListLayoutContentItem]",
-            "key.parsed_scope.end" : 36,
-            "key.parsed_scope.start" : 22,
-            "key.typename" : "[ListLayoutContentItem]",
-            "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC3allSayAA0cdE4Item_pGvp"
+            "key.length" : 67,
+            "key.name" : "contentInsetAdjustmentBehavior",
+            "key.namelength" : 30,
+            "key.nameoffset" : 227,
+            "key.offset" : 223,
+            "key.parsed_declaration" : "public var contentInsetAdjustmentBehavior : ContentInsetAdjustmentBehavior",
+            "key.parsed_scope.end" : 15,
+            "key.parsed_scope.start" : 15,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
+            "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOD",
+            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30contentInsetAdjustmentBehaviorAC07ContentijK0Ovp"
           },
           {
-            "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.local>",
-            "key.kind" : "source.lang.swift.decl.var.local",
-            "key.length" : 38,
-            "key.name" : "all",
-            "key.namelength" : 3,
-            "key.nameoffset" : 418,
-            "key.offset" : 414,
-            "key.parsed_declaration" : "var all : [ListLayoutContentItem] = []",
-            "key.parsed_scope.end" : 23,
-            "key.parsed_scope.start" : 23,
-            "key.related_decls" : [
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var allowsBounceVertical: Bool<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.annotated_decl" : "all<\/RelatedName>"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 300
               }
             ],
-            "key.typename" : "[ListLayoutContentItem]",
-            "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC3allSayAA0cdE4Item_pGvgADL_AFvp"
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsBounceVertical<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 31,
+            "key.name" : "allowsBounceVertical",
+            "key.namelength" : 20,
+            "key.nameoffset" : 311,
+            "key.offset" : 307,
+            "key.parsed_declaration" : "public var allowsBounceVertical : Bool",
+            "key.parsed_scope.end" : 17,
+            "key.parsed_scope.start" : 17,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV20allowsBounceVerticalSbvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "init()<\/Declaration>",
-            "key.bodylength" : 288,
-            "key.bodyoffset" : 724,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 301,
-            "key.name" : "init()",
-            "key.namelength" : 6,
-            "key.nameoffset" : 712,
-            "key.offset" : 712,
-            "key.parsed_declaration" : "init()",
-            "key.parsed_scope.end" : 47,
-            "key.parsed_scope.start" : 38,
-            "key.related_decls" : [
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var allowsBounceHorizontal: Bool<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.annotated_decl" : "init(header:footer:overscrollFooter:sections:)<\/RelatedName>"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 343
               }
             ],
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(ListLayoutContent.Type) -> () -> ListLayoutContent",
-            "key.typeusr" : "$s10ListableUI17ListLayoutContentCycD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentCACycfc"
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsBounceHorizontal<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 33,
+            "key.name" : "allowsBounceHorizontal",
+            "key.namelength" : 22,
+            "key.nameoffset" : 354,
+            "key.offset" : 350,
+            "key.parsed_declaration" : "public var allowsBounceHorizontal : Bool",
+            "key.parsed_scope.end" : 18,
+            "key.parsed_scope.start" : 18,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV22allowsBounceHorizontalSbvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "init(header: SupplementaryItemInfo<\/Type>?, footer: SupplementaryItemInfo<\/Type>?, overscrollFooter: SupplementaryItemInfo<\/Type>?, sections: [SectionInfo<\/Type>])<\/Declaration>",
-            "key.bodylength" : 262,
-            "key.bodyoffset" : 1202,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(header<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, overscrollFooter<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, sections<\/decl.var.parameter.argument_label>: [SectionInfo<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 442,
-            "key.name" : "init(header:footer:overscrollFooter:sections:)",
-            "key.namelength" : 177,
-            "key.nameoffset" : 1023,
-            "key.offset" : 1023,
-            "key.parsed_declaration" : "init(\n    header : SupplementaryItemInfo?,\n    footer : SupplementaryItemInfo?,\n    overscrollFooter : SupplementaryItemInfo?,\n    sections : [SectionInfo]\n)",
-            "key.parsed_scope.end" : 61,
-            "key.parsed_scope.start" : 49,
-            "key.related_decls" : [
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var allowsHorizontalScrollIndicator: Bool<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.annotated_decl" : "init()<\/RelatedName>"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 393
               }
             ],
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(ListLayoutContent.Type) -> (ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, [ListLayoutContent.SectionInfo]) -> ListLayoutContent",
-            "key.typeusr" : "$s6header6footer16overscrollFooter8sections10ListableUI17ListLayoutContentCAG21SupplementaryItemInfoCSg_A2JSayAG07SectionM0CGtcD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC6header6footer16overscrollFooter8sectionsA2C21SupplementaryItemInfoCSg_A2JSayAC07SectionM0CGtcfc"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 23,
-            "key.name" : "MARK: Fetching Elements",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 1485
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsHorizontalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 42,
+            "key.name" : "allowsHorizontalScrollIndicator",
+            "key.namelength" : 31,
+            "key.nameoffset" : 404,
+            "key.offset" : 400,
+            "key.parsed_declaration" : "public var allowsHorizontalScrollIndicator : Bool",
+            "key.parsed_scope.end" : 20,
+            "key.parsed_scope.start" : 20,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV016allowsHorizontalE9IndicatorSbvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func layoutAttributes(at indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
-            "key.bodylength" : 112,
-            "key.bodyoffset" : 1614,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 202,
-            "key.name" : "layoutAttributes(at:)",
-            "key.namelength" : 42,
-            "key.nameoffset" : 1530,
-            "key.offset" : 1525,
-            "key.parsed_declaration" : "func layoutAttributes(at indexPath : IndexPath) -> UICollectionViewLayoutAttributes",
-            "key.parsed_scope.end" : 72,
-            "key.parsed_scope.start" : 67,
-            "key.related_decls" : [
-              {
-                "key.annotated_decl" : "layoutAttributes(in:alwaysIncludeOverscroll:)<\/RelatedName>"
-              },
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var allowsVerticalScrollIndicator: Bool<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.annotated_decl" : "layoutAttributes<\/RelatedName>"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 447
               }
             ],
-            "key.substructure" : [
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsVerticalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 40,
+            "key.name" : "allowsVerticalScrollIndicator",
+            "key.namelength" : 29,
+            "key.nameoffset" : 458,
+            "key.offset" : 454,
+            "key.parsed_declaration" : "public var allowsVerticalScrollIndicator : Bool",
+            "key.parsed_scope.end" : 21,
+            "key.parsed_scope.start" : 21,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV014allowsVerticalE9IndicatorSbvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public init(isPagingEnabled: Bool<\/Type>, contentInsetAdjustmentBehavior: ListLayoutScrollViewProperties<\/Type>.ContentInsetAdjustmentBehavior<\/Type>, allowsBounceVertical: Bool<\/Type>, allowsBounceHorizontal: Bool<\/Type>, allowsVerticalScrollIndicator: Bool<\/Type>, allowsHorizontalScrollIndicator: Bool<\/Type>)<\/Declaration>",
+            "key.attributes" : [
               {
-                "key.annotated_decl" : "let item: ListLayoutContent<\/Type>.ItemInfo<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 35,
-                "key.name" : "item",
-                "key.namelength" : 4,
-                "key.nameoffset" : 1627,
-                "key.offset" : 1623,
-                "key.parsed_declaration" : "let item = self.item(at: indexPath)",
-                "key.parsed_scope.end" : 69,
-                "key.parsed_scope.start" : 69,
-                "key.related_decls" : [
-                  {
-                    "key.annotated_decl" : "item(at:)<\/RelatedName>"
-                  }
-                ],
-                "key.typename" : "ListLayoutContent.ItemInfo",
-                "key.typeusr" : "$s10ListableUI17ListLayoutContentC8ItemInfoCD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2atSo016UICollectionViewdG0C10Foundation9IndexPathV_tF4itemL_AC8ItemInfoCvp"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 504
               }
             ],
-            "key.typename" : "(ListLayoutContent) -> (IndexPath) -> UICollectionViewLayoutAttributes",
-            "key.typeusr" : "$s2atSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_tcD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2atSo016UICollectionViewdG0C10Foundation9IndexPathV_tF"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func item(at indexPath: IndexPath<\/Type>) -> ListLayoutContent<\/Type>.ItemInfo<\/Type><\/Declaration>",
-            "key.bodylength" : 75,
-            "key.bodyoffset" : 1808,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> item<\/decl.name>(at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.bodylength" : 411,
+            "key.bodyoffset" : 827,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isPagingEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentInsetAdjustmentBehavior<\/decl.var.parameter.argument_label>: ListLayoutScrollViewProperties<\/ref.struct>.ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, allowsBounceVertical<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, allowsBounceHorizontal<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, allowsVerticalScrollIndicator<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, allowsHorizontalScrollIndicator<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 147,
-            "key.name" : "item(at:)",
-            "key.namelength" : 30,
-            "key.nameoffset" : 1742,
-            "key.offset" : 1737,
-            "key.parsed_declaration" : "func item(at indexPath : IndexPath) -> ListLayoutContent.ItemInfo",
-            "key.parsed_scope.end" : 77,
-            "key.parsed_scope.start" : 74,
+            "key.length" : 728,
+            "key.name" : "init(isPagingEnabled:contentInsetAdjustmentBehavior:allowsBounceVertical:allowsBounceHorizontal:allowsVerticalScrollIndicator:allowsHorizontalScrollIndicator:)",
+            "key.namelength" : 314,
+            "key.nameoffset" : 511,
+            "key.offset" : 511,
+            "key.parsed_declaration" : "public init(\n    isPagingEnabled: Bool,\n    contentInsetAdjustmentBehavior: ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior,\n    allowsBounceVertical : Bool,\n    allowsBounceHorizontal : Bool,\n    allowsVerticalScrollIndicator : Bool,\n    allowsHorizontalScrollIndicator : Bool\n)",
+            "key.parsed_scope.end" : 39,
+            "key.parsed_scope.start" : 23,
             "key.substructure" : [
 
             ],
-            "key.typename" : "(ListLayoutContent) -> (IndexPath) -> ListLayoutContent.ItemInfo",
-            "key.typeusr" : "$s2at10ListableUI17ListLayoutContentC8ItemInfoC10Foundation9IndexPathV_tcD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC4item2atAC8ItemInfoC10Foundation9IndexPathV_tF"
+            "key.typename" : "(ListLayoutScrollViewProperties.Type) -> (Bool, ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior, Bool, Bool, Bool, Bool) -> ListLayoutScrollViewProperties",
+            "key.typeusr" : "$s15isPagingEnabled30contentInsetAdjustmentBehavior20allowsBounceVertical0hI10Horizontal0hJ15ScrollIndicator0hklM010ListableUI010ListLayoutL14ViewPropertiesVSb_AI07ContentefG0OS4btcD",
+            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabled30contentInsetAdjustmentBehavior20allowsBounceVertical0oP10Horizontal0oqE9Indicator0oreS0ACSb_AC07ContentlmN0OS4btcfc"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func supplementaryLayoutAttributes(of kind: String<\/Type>, at indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type>?<\/Declaration>",
-            "key.bodylength" : 580,
-            "key.bodyoffset" : 2015,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> supplementaryLayoutAttributes<\/decl.name>(of<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class>?<\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.annotated_decl" : "func apply(to view: UIScrollView<\/Type>, behavior: Behavior<\/Type>, direction: LayoutDirection<\/Type>, showsScrollIndicators: Bool<\/Type>)<\/Declaration>",
+            "key.bodylength" : 1908,
+            "key.bodyoffset" : 1407,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, showsScrollIndicators<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 702,
-            "key.name" : "supplementaryLayoutAttributes(of:at:)",
-            "key.namelength" : 73,
-            "key.nameoffset" : 1899,
-            "key.offset" : 1894,
-            "key.parsed_declaration" : "func supplementaryLayoutAttributes(of kind : String, at indexPath : IndexPath) -> UICollectionViewLayoutAttributes?",
-            "key.parsed_scope.end" : 92,
-            "key.parsed_scope.start" : 79,
+            "key.length" : 2063,
+            "key.name" : "apply(to:behavior:direction:showsScrollIndicators:)",
+            "key.namelength" : 147,
+            "key.nameoffset" : 1258,
+            "key.offset" : 1253,
+            "key.parsed_declaration" : "func apply(\n    to view : UIScrollView,\n    behavior : Behavior,\n    direction : LayoutDirection,\n    showsScrollIndicators : Bool\n)",
+            "key.parsed_scope.end" : 82,
+            "key.parsed_scope.start" : 41,
             "key.substructure" : [
               {
-                "key.annotated_decl" : "let section: ListLayoutContent<\/Type>.SectionInfo<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: ListLayoutContent<\/ref.class>.SectionInfo<\/ref.class><\/decl.var.type><\/decl.var.local>",
+                "key.annotated_decl" : "let isPagingEnabled: Bool<\/Type><\/Declaration>",
+                "key.doc.column" : 13,
+                "key.doc.comment" : "**Note**: Properties are only set if they are different (hence all the `if` statements below)\nbecause some UIScrollView properties, even when set to the same value, can affect or stop scrolling if it\nis in progress. Hard to tell which across iOS versions, so just always be defensive.",
+                "key.doc.declaration" : "let isPagingEnabled: Bool",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                "key.doc.full_as_xml" : "isPagingEnabled<\/Name>s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF15isPagingEnabledL_Sbvp<\/USR>let isPagingEnabled: Bool<\/Declaration>Note<\/bold>: Properties are only set if they are different (hence all the if<\/codeVoice> statements below) because some UIScrollView properties, even when set to the same value, can affect or stop scrolling if it is in progress. Hard to tell which across iOS versions, so just always be defensive.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 51,
+                "key.doc.name" : "isPagingEnabled",
+                "key.doc.type" : "Other",
+                "key.doclength" : 313,
+                "key.docoffset" : 1416,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isPagingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 46,
-                "key.name" : "section",
-                "key.namelength" : 7,
-                "key.nameoffset" : 2028,
-                "key.offset" : 2024,
-                "key.parsed_declaration" : "let section = self.sections[indexPath.section]",
-                "key.parsed_scope.end" : 81,
-                "key.parsed_scope.start" : 81,
-                "key.typename" : "ListLayoutContent.SectionInfo",
-                "key.typeusr" : "$s10ListableUI17ListLayoutContentC11SectionInfoCD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC013supplementaryD10Attributes2of2atSo016UICollectionViewdG0CSgSS_10Foundation9IndexPathVtF7sectionL_AC11SectionInfoCvp"
-              }
-            ],
-            "key.typename" : "(ListLayoutContent) -> (String, IndexPath) -> UICollectionViewLayoutAttributes?",
-            "key.typeusr" : "$s2of2atSo32UICollectionViewLayoutAttributesCSgSS_10Foundation9IndexPathVtcD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC013supplementaryD10Attributes2of2atSo016UICollectionViewdG0CSgSS_10Foundation9IndexPathVtF"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func layoutAttributes(in rect: CGRect<\/Type>, alwaysIncludeOverscroll: Bool<\/Type>) -> [UICollectionViewLayoutAttributes<\/Type>]<\/Declaration>",
-            "key.bodylength" : 2545,
-            "key.bodyoffset" : 2720,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(in<\/decl.var.parameter.argument_label> rect<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, alwaysIncludeOverscroll<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [UICollectionViewLayoutAttributes<\/ref.class>]<\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 2660,
-            "key.name" : "layoutAttributes(in:alwaysIncludeOverscroll:)",
-            "key.namelength" : 65,
-            "key.nameoffset" : 2611,
-            "key.offset" : 2606,
-            "key.parsed_declaration" : "func layoutAttributes(in rect: CGRect, alwaysIncludeOverscroll : Bool) -> [UICollectionViewLayoutAttributes]",
-            "key.parsed_scope.end" : 159,
-            "key.parsed_scope.start" : 94,
-            "key.related_decls" : [
+                "key.length" : 70,
+                "key.name" : "isPagingEnabled",
+                "key.namelength" : 15,
+                "key.nameoffset" : 1750,
+                "key.offset" : 1746,
+                "key.parsed_declaration" : "let isPagingEnabled = self.isPagingEnabled || behavior.isPagingEnabled",
+                "key.parsed_scope.end" : 51,
+                "key.parsed_scope.start" : 51,
+                "key.related_decls" : [
+                  {
+                    "key.annotated_decl" : "isPagingEnabled<\/RelatedName>"
+                  }
+                ],
+                "key.typename" : "Bool",
+                "key.typeusr" : "$sSbD",
+                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF15isPagingEnabledL_Sbvp"
+              },
               {
-                "key.annotated_decl" : "layoutAttributes(at:)<\/RelatedName>"
+                "key.annotated_decl" : "let alwaysBounceVertical: Bool<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> alwaysBounceVertical<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 113,
+                "key.name" : "alwaysBounceVertical",
+                "key.namelength" : 20,
+                "key.nameoffset" : 2202,
+                "key.offset" : 2198,
+                "key.parsed_declaration" : "let alwaysBounceVertical = self.allowsBounceVertical && behavior.underflow.alwaysBounce && direction == .vertical",
+                "key.parsed_scope.end" : 61,
+                "key.parsed_scope.start" : 61,
+                "key.typename" : "Bool",
+                "key.typeusr" : "$sSbD",
+                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF20alwaysBounceVerticalL_Sbvp"
               },
               {
-                "key.annotated_decl" : "layoutAttributes<\/RelatedName>"
-              }
-            ],
-            "key.substructure" : [
+                "key.annotated_decl" : "let alwaysBounceHorizontal: Bool<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> alwaysBounceHorizontal<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 119,
+                "key.name" : "alwaysBounceHorizontal",
+                "key.namelength" : 22,
+                "key.nameoffset" : 2324,
+                "key.offset" : 2320,
+                "key.parsed_declaration" : "let alwaysBounceHorizontal = self.allowsBounceHorizontal && behavior.underflow.alwaysBounce && direction == .horizontal",
+                "key.parsed_scope.end" : 62,
+                "key.parsed_scope.start" : 62,
+                "key.typename" : "Bool",
+                "key.typeusr" : "$sSbD",
+                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF22alwaysBounceHorizontalL_Sbvp"
+              },
               {
-                "key.annotated_decl" : "var attributes: [UICollectionViewLayoutAttributes<\/Type>]<\/Declaration>",
-                "key.doc.comment" : "Supplementary items are technically attached to index paths. Eg, list headers\nand footers are attached to (0,0), and section headers and footers are attached to\n(sectionIndex, 0). Because of this, we can't return any list headers or footers\nunless there's at least one section – the collection view will not have anything to\nattach them to, and will then crash.",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> attributes<\/decl.name>: [UICollectionViewLayoutAttributes<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
+                "key.annotated_decl" : "let showsVerticalScrollIndicator: Bool<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> showsVerticalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 53,
-                "key.name" : "attributes",
-                "key.namelength" : 10,
-                "key.nameoffset" : 3259,
-                "key.offset" : 3255,
-                "key.parsed_declaration" : "var attributes = [UICollectionViewLayoutAttributes]()",
-                "key.parsed_scope.end" : 107,
-                "key.parsed_scope.start" : 107,
-                "key.typename" : "[UICollectionViewLayoutAttributes]",
-                "key.typeusr" : "$sSaySo32UICollectionViewLayoutAttributesCGD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2in23alwaysIncludeOverscrollSaySo016UICollectionViewdG0CGSo6CGRectV_SbtF10attributesL_AIvp"
+                "key.length" : 94,
+                "key.name" : "showsVerticalScrollIndicator",
+                "key.namelength" : 28,
+                "key.nameoffset" : 2755,
+                "key.offset" : 2751,
+                "key.parsed_declaration" : "let showsVerticalScrollIndicator = self.allowsVerticalScrollIndicator && showsScrollIndicators",
+                "key.parsed_scope.end" : 72,
+                "key.parsed_scope.start" : 72,
+                "key.typename" : "Bool",
+                "key.typeusr" : "$sSbD",
+                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF0l8VerticalE9IndicatorL_Sbvp"
+              },
+              {
+                "key.annotated_decl" : "let showsHorizontalScrollIndicator: Bool<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> showsHorizontalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 98,
+                "key.name" : "showsHorizontalScrollIndicator",
+                "key.namelength" : 30,
+                "key.nameoffset" : 2858,
+                "key.offset" : 2854,
+                "key.parsed_declaration" : "let showsHorizontalScrollIndicator = self.allowsHorizontalScrollIndicator && showsScrollIndicators",
+                "key.parsed_scope.end" : 73,
+                "key.parsed_scope.start" : 73,
+                "key.typename" : "Bool",
+                "key.typeusr" : "$sSbD",
+                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF0l10HorizontalE9IndicatorL_Sbvp"
               }
             ],
-            "key.typename" : "(ListLayoutContent) -> (CGRect, Bool) -> [UICollectionViewLayoutAttributes]",
-            "key.typeusr" : "$s2in23alwaysIncludeOverscrollSaySo32UICollectionViewLayoutAttributesCGSo6CGRectV_SbtcD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributes2in23alwaysIncludeOverscrollSaySo016UICollectionViewdG0CGSo6CGRectV_SbtF"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 24,
-            "key.name" : "MARK: Performing Layouts",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 5286
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func setSectionContentsFrames()<\/Declaration>",
-            "key.bodylength" : 81,
-            "key.bodyoffset" : 5360,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setSectionContentsFrames<\/decl.name>()<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 115,
-            "key.name" : "setSectionContentsFrames()",
-            "key.namelength" : 26,
-            "key.nameoffset" : 5332,
-            "key.offset" : 5327,
-            "key.parsed_declaration" : "func setSectionContentsFrames()",
-            "key.parsed_scope.end" : 169,
-            "key.parsed_scope.start" : 165,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(ListLayoutContent) -> () -> ()",
-            "key.typeusr" : "$syycD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC24setSectionContentsFramesyyF"
+            "key.typename" : "(ListLayoutScrollViewProperties) -> (UIScrollView, Behavior, LayoutDirection, Bool) -> ()",
+            "key.typeusr" : "$s2to8behavior9direction21showsScrollIndicatorsySo12UIScrollViewC_10ListableUI8BehaviorVAG15LayoutDirectionOSbtcD",
+            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func reindexLiveIndexPaths()<\/Declaration>",
-            "key.bodylength" : 252,
-            "key.bodyoffset" : 5486,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> reindexLiveIndexPaths<\/decl.name>()<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 287,
-            "key.name" : "reindexLiveIndexPaths()",
-            "key.namelength" : 23,
-            "key.nameoffset" : 5457,
-            "key.offset" : 5452,
-            "key.parsed_declaration" : "func reindexLiveIndexPaths()",
-            "key.parsed_scope.end" : 178,
-            "key.parsed_scope.start" : 171,
-            "key.substructure" : [
-
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public enum ListLayoutScrollViewProperties<\/Type>.ContentInsetAdjustmentBehavior : Equatable<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 3326
+              }
             ],
-            "key.typename" : "(ListLayoutContent) -> () -> ()",
-            "key.typeusr" : "$syycD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC21reindexLiveIndexPathsyyF"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func reindexDelegateProvidedIndexPaths()<\/Declaration>",
-            "key.bodylength" : 264,
-            "key.bodyoffset" : 5795,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> reindexDelegateProvidedIndexPaths<\/decl.name>()<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 311,
-            "key.name" : "reindexDelegateProvidedIndexPaths()",
-            "key.namelength" : 35,
-            "key.nameoffset" : 5754,
-            "key.offset" : 5749,
-            "key.parsed_declaration" : "func reindexDelegateProvidedIndexPaths()",
-            "key.parsed_scope.end" : 187,
-            "key.parsed_scope.start" : 180,
-            "key.substructure" : [
-
+            "key.bodylength" : 418,
+            "key.bodyoffset" : 3382,
+            "key.elements" : [
+              {
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 9,
+                "key.offset" : 3371
+              }
             ],
-            "key.typename" : "(ListLayoutContent) -> () -> ()",
-            "key.typeusr" : "$syycD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC33reindexDelegateProvidedIndexPathsyyF"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func move(from: IndexPath<\/Type>, to: IndexPath<\/Type>)<\/Declaration>",
-            "key.bodylength" : 253,
-            "key.bodyoffset" : 6119,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> move<\/decl.name>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 303,
-            "key.name" : "move(from:to:)",
-            "key.namelength" : 38,
-            "key.nameoffset" : 6075,
-            "key.offset" : 6070,
-            "key.parsed_declaration" : "func move(from : IndexPath, to : IndexPath)",
-            "key.parsed_scope.end" : 199,
-            "key.parsed_scope.start" : 189,
-            "key.substructure" : [
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListLayoutScrollViewProperties<\/ref.struct>.ContentInsetAdjustmentBehavior<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
+            "key.inheritedtypes" : [
               {
-                "key.annotated_decl" : "let info: ListLayoutContent<\/Type>.ItemInfo<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> info<\/decl.name>: ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 30,
-                "key.name" : "info",
-                "key.namelength" : 4,
-                "key.nameoffset" : 6202,
-                "key.offset" : 6198,
-                "key.parsed_declaration" : "let info = self.item(at: from)",
-                "key.parsed_scope.end" : 195,
-                "key.parsed_scope.start" : 195,
-                "key.typename" : "ListLayoutContent.ItemInfo",
-                "key.typeusr" : "$s10ListableUI17ListLayoutContentC8ItemInfoCD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toy10Foundation9IndexPathV_AItF4infoL_AC8ItemInfoCvp"
+                "key.name" : "Equatable"
               }
             ],
-            "key.typename" : "(ListLayoutContent) -> (IndexPath, IndexPath) -> ()",
-            "key.typeusr" : "$s4from2toy10Foundation9IndexPathV_AEtcD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC4move4from2toy10Foundation9IndexPathV_AItF"
-          },
-          {
-            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 17,
-            "key.name" : "MARK: Layout Data",
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 6393
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var layoutAttributes: ListLayoutAttributes<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 890,
-            "key.bodyoffset" : 6472,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAttributes<\/decl.name>: ListLayoutAttributes<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 936,
-            "key.name" : "layoutAttributes",
-            "key.namelength" : 16,
-            "key.nameoffset" : 6431,
-            "key.offset" : 6427,
-            "key.parsed_declaration" : "var layoutAttributes : ListLayoutAttributes",
-            "key.parsed_scope.end" : 222,
-            "key.parsed_scope.start" : 205,
-            "key.related_decls" : [
+            "key.kind" : "source.lang.swift.decl.enum",
+            "key.length" : 468,
+            "key.name" : "ContentInsetAdjustmentBehavior",
+            "key.namelength" : 30,
+            "key.nameoffset" : 3338,
+            "key.offset" : 3333,
+            "key.parsed_declaration" : "public enum ContentInsetAdjustmentBehavior : Equatable",
+            "key.parsed_scope.end" : 98,
+            "key.parsed_scope.start" : 84,
+            "key.substructure" : [
               {
-                "key.annotated_decl" : "layoutAttributes(at:)<\/RelatedName>"
+                "key.kind" : "source.lang.swift.decl.enumcase",
+                "key.length" : 14,
+                "key.namelength" : 0,
+                "key.nameoffset" : 0,
+                "key.offset" : 3391,
+                "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "case automatic<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> automatic<\/decl.name><\/decl.enumelement>",
+                    "key.kind" : "source.lang.swift.decl.enumelement",
+                    "key.length" : 9,
+                    "key.name" : "automatic",
+                    "key.namelength" : 9,
+                    "key.nameoffset" : 3396,
+                    "key.offset" : 3396,
+                    "key.parsed_declaration" : "case automatic",
+                    "key.parsed_scope.end" : 85,
+                    "key.parsed_scope.start" : 85,
+                    "key.typename" : "(ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type) -> ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
+                    "key.typeusr" : "$sy10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOAEmcD",
+                    "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO9automaticyA2EmF"
+                  }
+                ]
               },
               {
-                "key.annotated_decl" : "layoutAttributes(in:alwaysIncludeOverscroll:)<\/RelatedName>"
+                "key.kind" : "source.lang.swift.decl.enumcase",
+                "key.length" : 19,
+                "key.namelength" : 0,
+                "key.nameoffset" : 0,
+                "key.offset" : 3414,
+                "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "case scrollableAxes<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrollableAxes<\/decl.name><\/decl.enumelement>",
+                    "key.kind" : "source.lang.swift.decl.enumelement",
+                    "key.length" : 14,
+                    "key.name" : "scrollableAxes",
+                    "key.namelength" : 14,
+                    "key.nameoffset" : 3419,
+                    "key.offset" : 3419,
+                    "key.parsed_declaration" : "case scrollableAxes",
+                    "key.parsed_scope.end" : 86,
+                    "key.parsed_scope.start" : 86,
+                    "key.typename" : "(ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type) -> ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
+                    "key.typeusr" : "$sy10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOAEmcD",
+                    "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2EmF"
+                  }
+                ]
+              },
+              {
+                "key.kind" : "source.lang.swift.decl.enumcase",
+                "key.length" : 10,
+                "key.namelength" : 0,
+                "key.nameoffset" : 0,
+                "key.offset" : 3442,
+                "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "case never<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> never<\/decl.name><\/decl.enumelement>",
+                    "key.kind" : "source.lang.swift.decl.enumelement",
+                    "key.length" : 5,
+                    "key.name" : "never",
+                    "key.namelength" : 5,
+                    "key.nameoffset" : 3447,
+                    "key.offset" : 3447,
+                    "key.parsed_declaration" : "case never",
+                    "key.parsed_scope.end" : 87,
+                    "key.parsed_scope.start" : 87,
+                    "key.typename" : "(ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type) -> ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
+                    "key.typeusr" : "$sy10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOAEmcD",
+                    "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO5neveryA2EmF"
+                  }
+                ]
+              },
+              {
+                "key.kind" : "source.lang.swift.decl.enumcase",
+                "key.length" : 11,
+                "key.namelength" : 0,
+                "key.nameoffset" : 0,
+                "key.offset" : 3461,
+                "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "case always<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> always<\/decl.name><\/decl.enumelement>",
+                    "key.kind" : "source.lang.swift.decl.enumelement",
+                    "key.length" : 6,
+                    "key.name" : "always",
+                    "key.namelength" : 6,
+                    "key.nameoffset" : 3466,
+                    "key.offset" : 3466,
+                    "key.parsed_declaration" : "case always",
+                    "key.parsed_scope.end" : 88,
+                    "key.parsed_scope.start" : 88,
+                    "key.typename" : "(ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type) -> ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
+                    "key.typeusr" : "$sy10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOAEmcD",
+                    "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO6alwaysyA2EmF"
+                  }
+                ]
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "var toUIScrollViewValue: UIScrollView<\/Type>.ContentInsetAdjustmentBehavior<\/Type> { get }<\/Declaration>",
+                "key.bodylength" : 233,
+                "key.bodyoffset" : 3561,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toUIScrollViewValue<\/decl.name>: UIScrollView<\/ref.class>.ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 305,
+                "key.name" : "toUIScrollViewValue",
+                "key.namelength" : 19,
+                "key.nameoffset" : 3494,
+                "key.offset" : 3490,
+                "key.parsed_declaration" : "var toUIScrollViewValue : UIScrollView.ContentInsetAdjustmentBehavior",
+                "key.parsed_scope.end" : 97,
+                "key.parsed_scope.start" : 90,
+                "key.typename" : "UIScrollView.ContentInsetAdjustmentBehavior",
+                "key.typeusr" : "$sSo42UIScrollViewContentInsetAdjustmentBehaviorVD",
+                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO010toUIScrollF5ValueSo0mfhijK0Vvp"
               }
             ],
-            "key.typename" : "ListLayoutAttributes",
-            "key.typeusr" : "$s10ListableUI20ListLayoutAttributesVD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC16layoutAttributesAA0cdG0Vvp"
+            "key.typename" : "ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type",
+            "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOmD",
+            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO"
           }
         ],
-        "key.typename" : "ListLayoutContent.Type",
-        "key.typeusr" : "$s10ListableUI17ListLayoutContentCmD",
-        "key.usr" : "s:10ListableUI17ListLayoutContentC"
-      },
+        "key.typename" : "ListLayoutScrollViewProperties.Type",
+        "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVmD",
+        "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 1261,
+    "key.offset" : 0,
+    "key.substructure" : [
       {
-        "key.accessibility" : "source.lang.swift.accessibility.internal",
-        "key.annotated_decl" : "protocol ListLayoutContentItem : AnyObject<\/Declaration>",
-        "key.bodylength" : 137,
-        "key.bodyoffset" : 7412,
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public struct ListLayoutPoint : Hashable<\/Type><\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 113
+          }
+        ],
+        "key.bodylength" : 497,
+        "key.bodyoffset" : 155,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 9,
-            "key.offset" : 7401
+            "key.length" : 8,
+            "key.offset" : 145
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-        "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> ListLayoutContentItem<\/decl.name> : AnyObject<\/decl.protocol>",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutPoint<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
-            "key.name" : "AnyObject"
+            "key.name" : "Hashable"
           }
         ],
-        "key.kind" : "source.lang.swift.decl.protocol",
-        "key.length" : 182,
-        "key.name" : "ListLayoutContentItem",
-        "key.namelength" : 21,
-        "key.nameoffset" : 7377,
-        "key.offset" : 7368,
-        "key.parsed_declaration" : "protocol ListLayoutContentItem : AnyObject",
-        "key.parsed_scope.end" : 233,
-        "key.parsed_scope.start" : 226,
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 533,
+        "key.name" : "ListLayoutPoint",
+        "key.namelength" : 15,
+        "key.nameoffset" : 127,
+        "key.offset" : 120,
+        "key.parsed_declaration" : "public struct ListLayoutPoint : Hashable",
+        "key.parsed_scope.end" : 32,
+        "key.parsed_scope.start" : 11,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var size: CGSize<\/Type> { get set }<\/Declaration>",
-            "key.bodylength" : 9,
-            "key.bodyoffset" : 7436,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 29,
-            "key.name" : "size",
-            "key.namelength" : 4,
-            "key.nameoffset" : 7421,
-            "key.offset" : 7417,
-            "key.parsed_declaration" : "var size : CGSize",
-            "key.parsed_scope.end" : 228,
-            "key.parsed_scope.start" : 228,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "CGSize",
-            "key.typeusr" : "$sSo6CGSizeVD",
-            "key.usr" : "s:10ListableUI21ListLayoutContentItemP4sizeSo6CGSizeVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var x: CGFloat<\/Type> { get set }<\/Declaration>",
-            "key.bodylength" : 9,
-            "key.bodyoffset" : 7468,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var x: CGFloat<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 161
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 27,
+            "key.length" : 15,
             "key.name" : "x",
             "key.namelength" : 1,
-            "key.nameoffset" : 7455,
-            "key.offset" : 7451,
-            "key.parsed_declaration" : "var x : CGFloat",
-            "key.parsed_scope.end" : 229,
-            "key.parsed_scope.start" : 229,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "CGFloat",
-            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-            "key.usr" : "s:10ListableUI21ListLayoutContentItemP1x12CoreGraphics7CGFloatVvp"
+            "key.nameoffset" : 172,
+            "key.offset" : 168,
+            "key.parsed_declaration" : "public var x : CGFloat",
+            "key.parsed_scope.end" : 13,
+            "key.parsed_scope.start" : 13,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "CGFloat",
+            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+            "key.usr" : "s:10ListableUI15ListLayoutPointV1x12CoreGraphics7CGFloatVvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var y: CGFloat<\/Type> { get set }<\/Declaration>",
-            "key.bodylength" : 9,
-            "key.bodyoffset" : 7500,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var y: CGFloat<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 188
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 27,
+            "key.length" : 15,
             "key.name" : "y",
             "key.namelength" : 1,
-            "key.nameoffset" : 7487,
-            "key.offset" : 7483,
-            "key.parsed_declaration" : "var y : CGFloat",
-            "key.parsed_scope.end" : 230,
-            "key.parsed_scope.start" : 230,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.nameoffset" : 199,
+            "key.offset" : 195,
+            "key.parsed_declaration" : "public var y : CGFloat",
+            "key.parsed_scope.end" : 14,
+            "key.parsed_scope.start" : 14,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "CGFloat",
             "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-            "key.usr" : "s:10ListableUI21ListLayoutContentItemP1y12CoreGraphics7CGFloatVvp"
+            "key.usr" : "s:10ListableUI15ListLayoutPointV1y12CoreGraphics7CGFloatVvp"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var zIndex: Int<\/Type> { get set }<\/Declaration>",
-            "key.bodylength" : 9,
-            "key.bodyoffset" : 7538,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var rotates: Bool<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 220
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rotates<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 28,
-            "key.name" : "zIndex",
-            "key.namelength" : 6,
-            "key.nameoffset" : 7524,
-            "key.offset" : 7520,
-            "key.parsed_declaration" : "var zIndex : Int",
-            "key.parsed_scope.end" : 232,
-            "key.parsed_scope.start" : 232,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "Int",
-            "key.typeusr" : "$sSiD",
-            "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp"
+            "key.length" : 18,
+            "key.name" : "rotates",
+            "key.namelength" : 7,
+            "key.nameoffset" : 231,
+            "key.offset" : 227,
+            "key.parsed_declaration" : "public var rotates : Bool",
+            "key.parsed_scope.end" : 16,
+            "key.parsed_scope.start" : 16,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI15ListLayoutPointV7rotatesSbvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public init(x: CGFloat<\/Type>, y: CGFloat<\/Type>, rotates: Bool<\/Type>)<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 255
+              }
+            ],
+            "key.bodylength" : 74,
+            "key.bodyoffset" : 311,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(x<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, y<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rotates<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 124,
+            "key.name" : "init(x:y:rotates:)",
+            "key.namelength" : 43,
+            "key.nameoffset" : 262,
+            "key.offset" : 262,
+            "key.parsed_declaration" : "public init(x: CGFloat, y: CGFloat, rotates: Bool)",
+            "key.parsed_scope.end" : 23,
+            "key.parsed_scope.start" : 18,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ListLayoutPoint.Type) -> (CGFloat, CGFloat, Bool) -> ListLayoutPoint",
+            "key.typeusr" : "$s1x1y7rotates10ListableUI15ListLayoutPointV12CoreGraphics7CGFloatV_AISbtcD",
+            "key.usr" : "s:10ListableUI15ListLayoutPointV1x1y7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public func CGPointValue(for direction: LayoutDirection<\/Type>) -> CGPoint<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 396
+              }
+            ],
+            "key.bodylength" : 184,
+            "key.bodyoffset" : 466,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> CGPointValue<\/decl.name>(for<\/decl.var.parameter.argument_label> direction<\/decl.var.parameter.name>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGPoint<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 248,
+            "key.name" : "CGPointValue(for:)",
+            "key.namelength" : 45,
+            "key.nameoffset" : 408,
+            "key.offset" : 403,
+            "key.parsed_declaration" : "public func CGPointValue(for direction : LayoutDirection) -> CGPoint",
+            "key.parsed_scope.end" : 31,
+            "key.parsed_scope.start" : 25,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ListLayoutPoint) -> (LayoutDirection) -> CGPoint",
+            "key.typeusr" : "$s3forSo7CGPointV10ListableUI15LayoutDirectionO_tcD",
+            "key.usr" : "s:10ListableUI15ListLayoutPointV12CGPointValue3forSo0F0VAA0D9DirectionO_tF"
           }
         ],
-        "key.typename" : "ListLayoutContentItem.Protocol",
-        "key.typeusr" : "$s10ListableUI21ListLayoutContentItem_pmD",
-        "key.usr" : "s:10ListableUI21ListLayoutContentItemP"
+        "key.typename" : "ListLayoutPoint.Type",
+        "key.typeusr" : "$s10ListableUI15ListLayoutPointVmD",
+        "key.usr" : "s:10ListableUI15ListLayoutPointV"
       },
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public final class ListLayoutContent<\/Declaration>",
+        "key.annotated_decl" : "public struct ListLayoutSize : Hashable<\/Type><\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 7553
+            "key.offset" : 656
           }
         ],
-        "key.bodylength" : 5392,
-        "key.bodyoffset" : 7589,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListLayoutContent<\/decl.name><\/decl.class>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 5422,
-        "key.name" : "ListLayoutContent",
-        "key.namelength" : 17,
-        "key.nameoffset" : 7570,
-        "key.offset" : 7560,
-        "key.parsed_declaration" : "public extension ListLayoutContent",
-        "key.parsed_scope.end" : 424,
-        "key.parsed_scope.start" : 236,
+        "key.bodylength" : 562,
+        "key.bodyoffset" : 697,
+        "key.elements" : [
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 8,
+            "key.offset" : 687
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutSize<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
+        "key.inheritedtypes" : [
+          {
+            "key.name" : "Hashable"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 597,
+        "key.name" : "ListLayoutSize",
+        "key.namelength" : 14,
+        "key.nameoffset" : 670,
+        "key.offset" : 663,
+        "key.parsed_declaration" : "public struct ListLayoutSize : Hashable",
+        "key.parsed_scope.end" : 55,
+        "key.parsed_scope.start" : 35,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "final class SectionInfo<\/Declaration>",
+            "key.annotated_decl" : "public var width: CGFloat<\/Type><\/Declaration>",
             "key.attributes" : [
               {
-                "key.attribute" : "source.decl.attribute.final",
-                "key.length" : 5,
-                "key.offset" : 7594
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 703
               }
             ],
-            "key.bodylength" : 1690,
-            "key.bodyoffset" : 7623,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SectionInfo<\/decl.name><\/decl.class>",
-            "key.kind" : "source.lang.swift.decl.class",
-            "key.length" : 1714,
-            "key.name" : "SectionInfo",
-            "key.namelength" : 11,
-            "key.nameoffset" : 7606,
-            "key.offset" : 7600,
-            "key.parsed_declaration" : "final class SectionInfo",
-            "key.parsed_scope.end" : 302,
-            "key.parsed_scope.start" : 238,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let layout: Section<\/Type>.Layout<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: Section<\/ref.struct>.Layout<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 27,
-                "key.name" : "layout",
-                "key.namelength" : 6,
-                "key.nameoffset" : 7636,
-                "key.offset" : 7632,
-                "key.parsed_declaration" : "let layout : Section.Layout",
-                "key.parsed_scope.end" : 240,
-                "key.parsed_scope.start" : 240,
-                "key.typename" : "Section.Layout",
-                "key.typeusr" : "$s10ListableUI7SectionV6LayoutVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC6layoutAA0F0V0D0Vvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let header: SupplementaryItemInfo<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> header<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 34,
-                "key.name" : "header",
-                "key.namelength" : 6,
-                "key.nameoffset" : 7681,
-                "key.offset" : 7677,
-                "key.parsed_declaration" : "let header : SupplementaryItemInfo",
-                "key.parsed_scope.end" : 242,
-                "key.parsed_scope.start" : 242,
-                "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
-                "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC6headerAC017SupplementaryItemG0Cvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let footer: SupplementaryItemInfo<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> footer<\/decl.name>: SupplementaryItemInfo<\/ref.class><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 34,
-                "key.name" : "footer",
-                "key.namelength" : 6,
-                "key.nameoffset" : 7724,
-                "key.offset" : 7720,
-                "key.parsed_declaration" : "let footer : SupplementaryItemInfo",
-                "key.parsed_scope.end" : 243,
-                "key.parsed_scope.start" : 243,
-                "key.typename" : "ListLayoutContent.SupplementaryItemInfo",
-                "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC6footerAC017SupplementaryItemG0Cvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let columns: Section<\/Type>.Columns<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> columns<\/decl.name>: Section<\/ref.struct>.Columns<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 29,
-                "key.name" : "columns",
-                "key.namelength" : 7,
-                "key.nameoffset" : 7776,
-                "key.offset" : 7772,
-                "key.parsed_declaration" : "let columns : Section.Columns",
-                "key.parsed_scope.end" : 245,
-                "key.parsed_scope.start" : 245,
-                "key.typename" : "Section.Columns",
-                "key.typeusr" : "$s10ListableUI7SectionV7ColumnsVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7columnsAA0F0V7ColumnsVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var items: [ItemInfo<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: [ItemInfo<\/ref.class>]<\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 22,
-                "key.name" : "items",
-                "key.namelength" : 5,
-                "key.nameoffset" : 7823,
-                "key.offset" : 7819,
-                "key.parsed_declaration" : "var items : [ItemInfo]",
-                "key.parsed_scope.end" : 247,
-                "key.parsed_scope.start" : 247,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "[ListLayoutContent.ItemInfo]",
-                "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC8ItemInfoCGD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC5itemsSayAC04ItemG0CGvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>] { get }<\/Declaration>",
-                "key.bodylength" : 335,
-                "key.bodyoffset" : 7894,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 371,
-                "key.name" : "all",
-                "key.namelength" : 3,
-                "key.nameoffset" : 7863,
-                "key.offset" : 7859,
-                "key.parsed_declaration" : "var all : [ListLayoutContentItem]",
-                "key.parsed_scope.end" : 263,
-                "key.parsed_scope.start" : 249,
-                "key.typename" : "[ListLayoutContentItem]",
-                "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC3allSayAA0cdE4Item_pGvp"
-              },
-              {
-                "key.annotated_decl" : "var all: [ListLayoutContentItem<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [ListLayoutContentItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 38,
-                "key.name" : "all",
-                "key.namelength" : 3,
-                "key.nameoffset" : 7911,
-                "key.offset" : 7907,
-                "key.parsed_declaration" : "var all : [ListLayoutContentItem] = []",
-                "key.parsed_scope.end" : 250,
-                "key.parsed_scope.start" : 250,
-                "key.related_decls" : [
-                  {
-                    "key.annotated_decl" : "all<\/RelatedName>"
-                  }
-                ],
-                "key.typename" : "[ListLayoutContentItem]",
-                "key.typeusr" : "$sSay10ListableUI21ListLayoutContentItem_pGD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC3allSayAA0cdE4Item_pGvgAFL_AHvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "private(set) var contentsFrame: CGRect<\/Type> { get }<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.setter_access.private",
-                    "key.length" : 12,
-                    "key.offset" : 8248
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> contentsFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 26,
-                "key.name" : "contentsFrame",
-                "key.namelength" : 13,
-                "key.nameoffset" : 8265,
-                "key.offset" : 8261,
-                "key.parsed_declaration" : "private(set) var contentsFrame : CGRect",
-                "key.parsed_scope.end" : 265,
-                "key.parsed_scope.start" : 265,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.private",
-                "key.typename" : "CGRect",
-                "key.typeusr" : "$sSo6CGRectVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC13contentsFrameSo6CGRectVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "init(layout: Section<\/Type>.Layout<\/Type>, header: SupplementaryItemInfo<\/Type>?, footer: SupplementaryItemInfo<\/Type>?, columns: Section<\/Type>.Columns<\/Type>, items: [ItemInfo<\/Type>])<\/Declaration>",
-                "key.bodylength" : 317,
-                "key.bodyoffset" : 8527,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layout<\/decl.var.parameter.argument_label>: Section<\/ref.struct>.Layout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: SupplementaryItemInfo<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>, columns<\/decl.var.parameter.argument_label>: Section<\/ref.struct>.Columns<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [ItemInfo<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 532,
-                "key.name" : "init(layout:header:footer:columns:items:)",
-                "key.namelength" : 212,
-                "key.nameoffset" : 8313,
-                "key.offset" : 8313,
-                "key.parsed_declaration" : "init(\n    layout : Section.Layout,\n    header : SupplementaryItemInfo?,\n    footer : SupplementaryItemInfo?,\n    columns : Section.Columns,\n    items : [ItemInfo]\n)",
-                "key.parsed_scope.end" : 284,
-                "key.parsed_scope.start" : 267,
-                "key.substructure" : [
-
-                ],
-                "key.typename" : "(ListLayoutContent.SectionInfo.Type) -> (Section.Layout, ListLayoutContent.SupplementaryItemInfo?, ListLayoutContent.SupplementaryItemInfo?, Section.Columns, [ListLayoutContent.ItemInfo]) -> ListLayoutContent.SectionInfo",
-                "key.typeusr" : "$s6layout6header6footer7columns5items10ListableUI17ListLayoutContentC11SectionInfoCAF0K0V0I0V_AH017SupplementaryItemL0CSgAqL7ColumnsVSayAH0nL0CGtcD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC6layout6header6footer7columns5itemsAeA0F0V0D0V_AC017SupplementaryItemG0CSgAqL7ColumnsVSayAC0nG0CGtcfc"
-              },
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 19,
+            "key.name" : "width",
+            "key.namelength" : 5,
+            "key.nameoffset" : 714,
+            "key.offset" : 710,
+            "key.parsed_declaration" : "public var width : CGFloat",
+            "key.parsed_scope.end" : 37,
+            "key.parsed_scope.start" : 37,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "CGFloat",
+            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+            "key.usr" : "s:10ListableUI14ListLayoutSizeV5width12CoreGraphics7CGFloatVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var height: CGFloat<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "func setContentsFrame()<\/Declaration>",
-                "key.bodylength" : 419,
-                "key.bodyoffset" : 8888,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setContentsFrame<\/decl.name>()<\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 445,
-                "key.name" : "setContentsFrame()",
-                "key.namelength" : 18,
-                "key.nameoffset" : 8868,
-                "key.offset" : 8863,
-                "key.parsed_declaration" : "func setContentsFrame()",
-                "key.parsed_scope.end" : 301,
-                "key.parsed_scope.start" : 286,
-                "key.substructure" : [
-                  {
-                    "key.annotated_decl" : "var allFrames: [CGRect<\/Type>]<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> allFrames<\/decl.name>: [CGRect<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 29,
-                    "key.name" : "allFrames",
-                    "key.namelength" : 9,
-                    "key.nameoffset" : 8918,
-                    "key.offset" : 8914,
-                    "key.parsed_declaration" : "var allFrames : [CGRect] = []",
-                    "key.parsed_scope.end" : 288,
-                    "key.parsed_scope.start" : 288,
-                    "key.typename" : "[CGRect]",
-                    "key.typeusr" : "$sSaySo6CGRectVGD",
-                    "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC16setContentsFrameyyF9allFramesL_SaySo6CGRectVGvp"
-                  }
-                ],
-                "key.typename" : "(ListLayoutContent.SectionInfo) -> () -> ()",
-                "key.typeusr" : "$syycD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC16setContentsFrameyyF"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 734
               }
             ],
-            "key.typename" : "ListLayoutContent.SectionInfo.Type",
-            "key.typeusr" : "$s10ListableUI17ListLayoutContentC11SectionInfoCmD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC"
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> height<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 20,
+            "key.name" : "height",
+            "key.namelength" : 6,
+            "key.nameoffset" : 745,
+            "key.offset" : 741,
+            "key.parsed_declaration" : "public var height : CGFloat",
+            "key.parsed_scope.end" : 38,
+            "key.parsed_scope.start" : 38,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "CGFloat",
+            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+            "key.usr" : "s:10ListableUI14ListLayoutSizeV6height12CoreGraphics7CGFloatVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "final class SupplementaryItemInfo : ListLayoutContentItem<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public var rotates: Bool<\/Type><\/Declaration>",
             "key.attributes" : [
               {
-                "key.attribute" : "source.decl.attribute.final",
-                "key.length" : 5,
-                "key.offset" : 9320
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 771
               }
             ],
-            "key.bodylength" : 1931,
-            "key.bodyoffset" : 9383,
-            "key.elements" : [
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rotates<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 18,
+            "key.name" : "rotates",
+            "key.namelength" : 7,
+            "key.nameoffset" : 782,
+            "key.offset" : 778,
+            "key.parsed_declaration" : "public var rotates : Bool",
+            "key.parsed_scope.end" : 40,
+            "key.parsed_scope.start" : 40,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI14ListLayoutSizeV7rotatesSbvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public init(width: CGFloat<\/Type>, height: CGFloat<\/Type>, rotates: Bool<\/Type>)<\/Declaration>",
+            "key.attributes" : [
               {
-                "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 21,
-                "key.offset" : 9356
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 806
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SupplementaryItemInfo<\/decl.name> : ListLayoutContentItem<\/ref.protocol><\/decl.class>",
-            "key.inheritedtypes" : [
+            "key.bodylength" : 92,
+            "key.bodyoffset" : 867,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rotates<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 147,
+            "key.name" : "init(width:height:rotates:)",
+            "key.namelength" : 52,
+            "key.nameoffset" : 813,
+            "key.offset" : 813,
+            "key.parsed_declaration" : "public init(width: CGFloat, height: CGFloat, rotates: Bool)",
+            "key.parsed_scope.end" : 46,
+            "key.parsed_scope.start" : 42,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ListLayoutSize.Type) -> (CGFloat, CGFloat, Bool) -> ListLayoutSize",
+            "key.typeusr" : "$s5width6height7rotates10ListableUI14ListLayoutSizeV12CoreGraphics7CGFloatV_AISbtcD",
+            "key.usr" : "s:10ListableUI14ListLayoutSizeV5width6height7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public func CGPointValue(for direction: LayoutDirection<\/Type>) -> CGSize<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.name" : "ListLayoutContentItem"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 970
               }
             ],
-            "key.kind" : "source.lang.swift.decl.class",
-            "key.length" : 1989,
-            "key.name" : "SupplementaryItemInfo",
-            "key.namelength" : 21,
-            "key.nameoffset" : 9332,
-            "key.offset" : 9326,
-            "key.parsed_declaration" : "final class SupplementaryItemInfo : ListLayoutContentItem",
-            "key.parsed_scope.end" : 370,
-            "key.parsed_scope.start" : 304,
+            "key.bodylength" : 218,
+            "key.bodyoffset" : 1039,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> CGPointValue<\/decl.name>(for<\/decl.var.parameter.argument_label> direction<\/decl.var.parameter.name>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 281,
+            "key.name" : "CGPointValue(for:)",
+            "key.namelength" : 45,
+            "key.nameoffset" : 982,
+            "key.offset" : 977,
+            "key.parsed_declaration" : "public func CGPointValue(for direction : LayoutDirection) -> CGSize",
+            "key.parsed_scope.end" : 54,
+            "key.parsed_scope.start" : 48,
             "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "static func empty(_ kind: SupplementaryKind<\/Type>) -> SupplementaryItemInfo<\/Type><\/Declaration>",
-                "key.bodylength" : 180,
-                "key.bodyoffset" : 9472,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> empty<\/decl.name>(_<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> SupplementaryItemInfo<\/ref.class><\/decl.function.returntype><\/decl.function.method.static>",
-                "key.kind" : "source.lang.swift.decl.function.method.static",
-                "key.length" : 261,
-                "key.name" : "empty(_:)",
-                "key.namelength" : 33,
-                "key.nameoffset" : 9404,
-                "key.offset" : 9392,
-                "key.parsed_declaration" : "static func empty(_ kind : SupplementaryKind) -> SupplementaryItemInfo",
-                "key.parsed_scope.end" : 313,
-                "key.parsed_scope.start" : 306,
-                "key.substructure" : [
 
-                ],
-                "key.typename" : "(ListLayoutContent.SupplementaryItemInfo.Type) -> (SupplementaryKind) -> ListLayoutContent.SupplementaryItemInfo",
-                "key.typeusr" : "$sy10ListableUI17ListLayoutContentC21SupplementaryItemInfoCAA0F4KindOcD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC5emptyyAeA0F4KindOFZ"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let kind: SupplementaryKind<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 28,
-                "key.name" : "kind",
-                "key.namelength" : 4,
-                "key.nameoffset" : 9675,
-                "key.offset" : 9671,
-                "key.parsed_declaration" : "let kind : SupplementaryKind",
-                "key.parsed_scope.end" : 315,
-                "key.parsed_scope.start" : 315,
-                "key.typename" : "SupplementaryKind",
-                "key.typeusr" : "$s10ListableUI17SupplementaryKindOD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC4kindAA0F4KindOvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let layout: HeaderFooterLayout<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: HeaderFooterLayout<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 31,
-                "key.name" : "layout",
-                "key.namelength" : 6,
-                "key.nameoffset" : 9712,
-                "key.offset" : 9708,
-                "key.parsed_declaration" : "let layout : HeaderFooterLayout",
-                "key.parsed_scope.end" : 316,
-                "key.parsed_scope.start" : 316,
-                "key.typename" : "HeaderFooterLayout",
-                "key.typeusr" : "$s10ListableUI18HeaderFooterLayoutVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC6layoutAA012HeaderFooterD0Vvp"
+            ],
+            "key.typename" : "(ListLayoutSize) -> (LayoutDirection) -> CGSize",
+            "key.typeusr" : "$s3forSo6CGSizeV10ListableUI15LayoutDirectionO_tcD",
+            "key.usr" : "s:10ListableUI14ListLayoutSizeV12CGPointValue3forSo6CGSizeVAA0D9DirectionO_tF"
+          }
+        ],
+        "key.typename" : "ListLayoutSize.Type",
+        "key.typeusr" : "$s10ListableUI14ListLayoutSizeVmD",
+        "key.usr" : "s:10ListableUI14ListLayoutSizeV"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 6321,
+    "key.offset" : 0,
+    "key.substructure" : [
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public struct LayoutDescription<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 93
+          }
+        ],
+        "key.bodylength" : 165,
+        "key.bodyoffset" : 129,
+        "key.doc.column" : 15,
+        "key.doc.declaration" : "public struct LayoutDescription",
+        "key.doc.discussion" : [
+          {
+            "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type."
+          },
+          {
+            "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "Or a layout for your own custom layout type would look somewhat like this:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)."
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 42,
+        "key.doc.name" : "LayoutDescription",
+        "key.doc.type" : "Class",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 195,
+        "key.name" : "LayoutDescription",
+        "key.namelength" : 17,
+        "key.nameoffset" : 110,
+        "key.offset" : 100,
+        "key.parsed_declaration" : "public extension LayoutDescription",
+        "key.parsed_scope.end" : 15,
+        "key.parsed_scope.start" : 9,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "static func paged(_ configure: @escaping (inout PagedAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>",
+            "key.bodylength" : 61,
+            "key.bodyoffset" : 231,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> paged<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> PagedAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
+            "key.kind" : "source.lang.swift.decl.function.method.static",
+            "key.length" : 159,
+            "key.name" : "paged(_:)",
+            "key.namelength" : 71,
+            "key.nameoffset" : 146,
+            "key.offset" : 134,
+            "key.parsed_declaration" : "static func paged(_ configure : @escaping (inout PagedAppearance) -> () = { _ in }) -> Self",
+            "key.parsed_scope.end" : 14,
+            "key.parsed_scope.start" : 11,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(LayoutDescription.Type) -> (@escaping (inout PagedAppearance) -> ()) -> LayoutDescription",
+            "key.typeusr" : "$sy10ListableUI17LayoutDescriptionVyAA15PagedAppearanceVzccD",
+            "key.usr" : "s:10ListableUI17LayoutDescriptionV5pagedyACyAA15PagedAppearanceVzcFZ"
+          }
+        ],
+        "key.typename" : "LayoutDescription.Type",
+        "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD",
+        "key.usr" : "s:10ListableUI17LayoutDescriptionV"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public struct PagedAppearance : ListLayoutAppearance<\/Type><\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 2151
+          }
+        ],
+        "key.bodylength" : 1493,
+        "key.bodyoffset" : 2205,
+        "key.doc.column" : 15,
+        "key.doc.comment" : "Describes the available appearance configuration options for a paged list layout.\nPaged list layouts lay out the headers, footers, and items in a list in a paged layout,\nsimilar to how UIPageViewController works.\n\nYou can control the direction via the `direction` property, and you can control\nthe inset on each page via the `itemInsets` property. You may also optionally show\nthe scroll indicators with the `showsScrollIndicators` property.\n\nNote\n----\nDo not edit this ASCII diagram directly.\nEdit the `PagedAppearance.monopic` file in this directory using Monodraw.\n```\n┌─────────────────────────────────┐\n│          itemInsets.top         │\n│   ┌─────────────────────────┐ i │\n│ i │                         │ t │\n│ t │                         │ e │\n│ e │                         │ m │\n│ m │                         │ I │\n│ I │                         │ n │\n│ n │                         │ s │\n│ s │                         │ e │\n│ e │                         │ t │\n│ t │                         │ s │\n│ s │                         │ . │\n│ . │                         │ r │\n│ l │                         │ i │\n│ e │                         │ g │\n│ f │                         │ h │\n│ t │                         │ t │\n│   └─────────────────────────┘   │\n│        itemInsets.bottom        │\n└─────────────────────────────────┘\n```",
+        "key.doc.declaration" : "public struct PagedAppearance : ListLayoutAppearance",
+        "key.doc.discussion" : [
+          {
+            "Para" : "You can control the direction via the `direction` property, and you can control the inset on each page via the `itemInsets` property. You may also optionally show the scroll indicators with the `showsScrollIndicators` property."
+          },
+          {
+            "Para" : "Do not edit this ASCII diagram directly. Edit the `PagedAppearance.monopic` file in this directory using Monodraw."
+          },
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+        "key.doc.full_as_xml" : "PagedAppearance<\/Name>s:10ListableUI15PagedAppearanceV<\/USR>public struct PagedAppearance : ListLayoutAppearance<\/Declaration>Describes the available appearance configuration options for a paged list layout. Paged list layouts lay out the headers, footers, and items in a list in a paged layout, similar to how UIPageViewController works.<\/Para><\/Abstract>You can control the direction via the direction<\/codeVoice> property, and you can control the inset on each page via the itemInsets<\/codeVoice> property. You may also optionally show the scroll indicators with the showsScrollIndicators<\/codeVoice> property.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not edit this ASCII diagram directly. Edit the PagedAppearance.monopic<\/codeVoice> file in this directory using Monodraw.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 52,
+        "key.doc.name" : "PagedAppearance",
+        "key.doc.type" : "Class",
+        "key.doclength" : 1854,
+        "key.docoffset" : 297,
+        "key.elements" : [
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 20,
+            "key.offset" : 2183
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> PagedAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>",
+        "key.inheritedtypes" : [
+          {
+            "key.name" : "ListLayoutAppearance"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 1541,
+        "key.name" : "PagedAppearance",
+        "key.namelength" : 15,
+        "key.nameoffset" : 2165,
+        "key.offset" : 2158,
+        "key.parsed_declaration" : "public struct PagedAppearance : ListLayoutAppearance",
+        "key.parsed_scope.end" : 99,
+        "key.parsed_scope.start" : 52,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public static var `default`: PagedAppearance<\/Type> { get }<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 2210
+              }
+            ],
+            "key.bodylength" : 25,
+            "key.bodyoffset" : 2256,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: PagedAppearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+            "key.kind" : "source.lang.swift.decl.var.static",
+            "key.length" : 65,
+            "key.name" : "default",
+            "key.namelength" : 7,
+            "key.nameoffset" : 2228,
+            "key.offset" : 2217,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ"
+              }
+            ],
+            "key.parsed_declaration" : "public static var `default`: PagedAppearance",
+            "key.parsed_scope.end" : 56,
+            "key.parsed_scope.start" : 54,
+            "key.typename" : "PagedAppearance",
+            "key.typeusr" : "$s10ListableUI15PagedAppearanceVD",
+            "key.usr" : "s:10ListableUI15PagedAppearanceV7defaultACvpZ"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var direction: LayoutDirection<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 2373
+              }
+            ],
+            "key.doc.column" : 16,
+            "key.doc.comment" : "The direction the paging layout should occur in. Defaults to `vertical`.",
+            "key.doc.declaration" : "public var direction: LayoutDirection",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.doc.full_as_xml" : "direction<\/Name>s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp<\/USR>public var direction: LayoutDirection<\/Declaration>The direction the paging layout should occur in. Defaults to vertical<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 59,
+            "key.doc.name" : "direction",
+            "key.doc.type" : "Other",
+            "key.doclength" : 77,
+            "key.docoffset" : 2292,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 30,
+            "key.name" : "direction",
+            "key.namelength" : 9,
+            "key.nameoffset" : 2384,
+            "key.offset" : 2380,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp"
+              }
+            ],
+            "key.parsed_declaration" : "public var direction: LayoutDirection",
+            "key.parsed_scope.end" : 59,
+            "key.parsed_scope.start" : 59,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "LayoutDirection",
+            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
+            "key.usr" : "s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public let stickySectionHeaders: Bool<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 2420
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 38,
+            "key.name" : "stickySectionHeaders",
+            "key.namelength" : 20,
+            "key.nameoffset" : 2431,
+            "key.offset" : 2427,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp"
+              }
+            ],
+            "key.parsed_declaration" : "public let stickySectionHeaders: Bool = false",
+            "key.parsed_scope.end" : 61,
+            "key.parsed_scope.start" : 61,
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI15PagedAppearanceV20stickySectionHeadersSbvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var showsScrollIndicators: Bool<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 2549
+              }
+            ],
+            "key.doc.column" : 16,
+            "key.doc.comment" : "If scroll indicators should be visible along the scrollable axis.",
+            "key.doc.declaration" : "public var showsScrollIndicators: Bool",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.doc.full_as_xml" : "showsScrollIndicators<\/Name>s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp<\/USR>public var showsScrollIndicators: Bool<\/Declaration>If scroll indicators should be visible along the scrollable axis.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 64,
+            "key.doc.name" : "showsScrollIndicators",
+            "key.doc.type" : "Other",
+            "key.doclength" : 70,
+            "key.docoffset" : 2475,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> showsScrollIndicators<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 32,
+            "key.name" : "showsScrollIndicators",
+            "key.namelength" : 21,
+            "key.nameoffset" : 2560,
+            "key.offset" : 2556,
+            "key.parsed_declaration" : "public var showsScrollIndicators : Bool",
+            "key.parsed_scope.end" : 64,
+            "key.parsed_scope.start" : 64,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var itemInsets: UIEdgeInsets<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 2680
+              }
+            ],
+            "key.doc.column" : 16,
+            "key.doc.comment" : "How far each item in the list should be inset from the edges of the view.",
+            "key.doc.declaration" : "public var itemInsets: UIEdgeInsets",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.doc.full_as_xml" : "itemInsets<\/Name>s:10ListableUI15PagedAppearanceV10itemInsetsSo06UIEdgeF0Vvp<\/USR>public var itemInsets: UIEdgeInsets<\/Declaration>How far each item in the list should be inset from the edges of the view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 67,
+            "key.doc.name" : "itemInsets",
+            "key.doc.type" : "Other",
+            "key.doclength" : 78,
+            "key.docoffset" : 2598,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 29,
+            "key.name" : "itemInsets",
+            "key.namelength" : 10,
+            "key.nameoffset" : 2691,
+            "key.offset" : 2687,
+            "key.parsed_declaration" : "public var itemInsets : UIEdgeInsets",
+            "key.parsed_scope.end" : 67,
+            "key.parsed_scope.start" : 67,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "UIEdgeInsets",
+            "key.typeusr" : "$sSo12UIEdgeInsetsVD",
+            "key.usr" : "s:10ListableUI15PagedAppearanceV10itemInsetsSo06UIEdgeF0Vvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "internal var pagingSize: PagingSize<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.internal",
+                "key.length" : 8,
+                "key.offset" : 2775
+              }
+            ],
+            "key.doc.column" : 18,
+            "key.doc.comment" : "Internal property for test harness only.",
+            "key.doc.declaration" : "internal var pagingSize: PagingSize",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.doc.full_as_xml" : "pagingSize<\/Name>s:10ListableUI15PagedAppearanceV10pagingSizeAC06PagingF0Ovp<\/USR>internal var pagingSize: PagingSize<\/Declaration>Internal property for test harness only.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 70,
+            "key.doc.name" : "pagingSize",
+            "key.doc.type" : "Other",
+            "key.doclength" : 45,
+            "key.docoffset" : 2726,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pagingSize<\/decl.name>: PagingSize<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 27,
+            "key.name" : "pagingSize",
+            "key.namelength" : 10,
+            "key.nameoffset" : 2788,
+            "key.offset" : 2784,
+            "key.parsed_declaration" : "internal var pagingSize : PagingSize",
+            "key.parsed_scope.end" : 70,
+            "key.parsed_scope.start" : 70,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "PagedAppearance.PagingSize",
+            "key.typeusr" : "$s10ListableUI15PagedAppearanceV10PagingSizeOD",
+            "key.usr" : "s:10ListableUI15PagedAppearanceV10pagingSizeAC06PagingF0Ovp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public init(direction: LayoutDirection<\/Type> = .vertical, showsScrollIndicators: Bool<\/Type> = false, itemInsets: UIEdgeInsets<\/Type> = .zero)<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 2821
+              }
+            ],
+            "key.bodylength" : 177,
+            "key.bodyoffset" : 2977,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type> = .vertical<\/decl.var.parameter>, showsScrollIndicators<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, itemInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 327,
+            "key.name" : "init(direction:showsScrollIndicators:itemInsets:)",
+            "key.namelength" : 147,
+            "key.nameoffset" : 2828,
+            "key.offset" : 2828,
+            "key.parsed_declaration" : "public init(\n    direction: LayoutDirection = .vertical,\n    showsScrollIndicators : Bool = false,\n    itemInsets : UIEdgeInsets = .zero\n)",
+            "key.parsed_scope.end" : 82,
+            "key.parsed_scope.start" : 72,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(PagedAppearance.Type) -> (LayoutDirection, Bool, UIEdgeInsets) -> PagedAppearance",
+            "key.typeusr" : "$s9direction21showsScrollIndicators10itemInsets10ListableUI15PagedAppearanceVAD15LayoutDirectionO_SbSo06UIEdgeF0VtcD",
+            "key.usr" : "s:10ListableUI15PagedAppearanceV9direction21showsScrollIndicators10itemInsetsAcA15LayoutDirectionO_SbSo06UIEdgeJ0Vtcfc"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "enum PagedAppearance<\/Type>.PagingSize : Equatable<\/Type><\/Declaration>",
+            "key.bodylength" : 502,
+            "key.bodyoffset" : 3194,
+            "key.elements" : [
+              {
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 9,
+                "key.offset" : 3183
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> PagedAppearance<\/ref.struct>.PagingSize<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
+            "key.inheritedtypes" : [
+              {
+                "key.name" : "Equatable"
+              }
+            ],
+            "key.kind" : "source.lang.swift.decl.enum",
+            "key.length" : 532,
+            "key.name" : "PagingSize",
+            "key.namelength" : 10,
+            "key.nameoffset" : 3170,
+            "key.offset" : 3165,
+            "key.parsed_declaration" : "enum PagingSize : Equatable",
+            "key.parsed_scope.end" : 98,
+            "key.parsed_scope.start" : 84,
+            "key.substructure" : [
+              {
+                "key.kind" : "source.lang.swift.decl.enumcase",
+                "key.length" : 9,
+                "key.namelength" : 0,
+                "key.nameoffset" : 0,
+                "key.offset" : 3203,
+                "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "case view<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> view<\/decl.name><\/decl.enumelement>",
+                    "key.kind" : "source.lang.swift.decl.enumelement",
+                    "key.length" : 4,
+                    "key.name" : "view",
+                    "key.namelength" : 4,
+                    "key.nameoffset" : 3208,
+                    "key.offset" : 3208,
+                    "key.parsed_declaration" : "case view",
+                    "key.parsed_scope.end" : 85,
+                    "key.parsed_scope.start" : 85,
+                    "key.typename" : "(PagedAppearance.PagingSize.Type) -> PagedAppearance.PagingSize",
+                    "key.typeusr" : "$sy10ListableUI15PagedAppearanceV10PagingSizeOAEmcD",
+                    "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO4viewyA2EmF"
+                  }
+                ]
               },
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let measurer: (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> measurer<\/decl.name>: (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 45,
-                "key.name" : "measurer",
-                "key.namelength" : 8,
-                "key.nameoffset" : 9752,
-                "key.offset" : 9748,
-                "key.parsed_declaration" : "let measurer : (Sizing.MeasureInfo) -> CGSize",
-                "key.parsed_scope.end" : 317,
-                "key.parsed_scope.start" : 317,
-                "key.typename" : "(Sizing.MeasureInfo) -> CGSize",
-                "key.typeusr" : "$sySo6CGSizeV10ListableUI6SizingO11MeasureInfoVcD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC8measurerySo6CGSizeVAA6SizingO07MeasureH0Vcvp"
+                "key.kind" : "source.lang.swift.decl.enumcase",
+                "key.length" : 19,
+                "key.namelength" : 0,
+                "key.nameoffset" : 0,
+                "key.offset" : 3221,
+                "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "case fixed(CGFloat<\/Type>)<\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
+                    "key.kind" : "source.lang.swift.decl.enumelement",
+                    "key.length" : 14,
+                    "key.name" : "fixed(_:)",
+                    "key.namelength" : 14,
+                    "key.nameoffset" : 3226,
+                    "key.offset" : 3226,
+                    "key.parsed_declaration" : "case fixed(CGFloat)",
+                    "key.parsed_scope.end" : 86,
+                    "key.parsed_scope.start" : 86,
+                    "key.substructure" : [
+
+                    ],
+                    "key.typename" : "(PagedAppearance.PagingSize.Type) -> (CGFloat) -> PagedAppearance.PagingSize",
+                    "key.typeusr" : "$sy10ListableUI15PagedAppearanceV10PagingSizeO12CoreGraphics7CGFloatVcAEmcD",
+                    "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO5fixedyAE12CoreGraphics7CGFloatVcAEmF"
+                  }
+                ]
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let isPopulated: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isPopulated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 22,
-                "key.name" : "isPopulated",
-                "key.namelength" : 11,
-                "key.nameoffset" : 9823,
-                "key.offset" : 9819,
-                "key.parsed_declaration" : "let isPopulated : Bool",
-                "key.parsed_scope.end" : 319,
-                "key.parsed_scope.start" : 319,
-                "key.typename" : "Bool",
-                "key.typeusr" : "$sSbD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC11isPopulatedSbvp"
+                "key.annotated_decl" : "func size(for view: UIView<\/Type>, direction: LayoutDirection<\/Type>) -> CGSize<\/Type><\/Declaration>",
+                "key.bodylength" : 363,
+                "key.bodyoffset" : 3327,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 433,
+                "key.name" : "size(for:direction:)",
+                "key.namelength" : 52,
+                "key.nameoffset" : 3263,
+                "key.offset" : 3258,
+                "key.parsed_declaration" : "func size(for view : UIView, direction : LayoutDirection) -> CGSize",
+                "key.parsed_scope.end" : 97,
+                "key.parsed_scope.start" : 88,
+                "key.substructure" : [
+
+                ],
+                "key.typename" : "(PagedAppearance.PagingSize) -> (UIView, LayoutDirection) -> CGSize",
+                "key.typeusr" : "$s3for9directionSo6CGSizeVSo6UIViewC_10ListableUI15LayoutDirectionOtcD",
+                "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO4size3for9directionSo6CGSizeVSo6UIViewC_AA15LayoutDirectionOtF"
+              }
+            ],
+            "key.typename" : "PagedAppearance.PagingSize.Type",
+            "key.typeusr" : "$s10ListableUI15PagedAppearanceV10PagingSizeOmD",
+            "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO"
+          }
+        ],
+        "key.typename" : "PagedAppearance.Type",
+        "key.typeusr" : "$s10ListableUI15PagedAppearanceVmD",
+        "key.usr" : "s:10ListableUI15PagedAppearanceV"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.internal",
+        "key.annotated_decl" : "final class PagedListLayout : ListLayout<\/Type><\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.final",
+            "key.length" : 5,
+            "key.offset" : 3702
+          }
+        ],
+        "key.bodylength" : 2575,
+        "key.bodyoffset" : 3744,
+        "key.elements" : [
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 10,
+            "key.offset" : 3732
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+        "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PagedListLayout<\/decl.name> : ListLayout<\/ref.protocol><\/decl.class>",
+        "key.inheritedtypes" : [
+          {
+            "key.name" : "ListLayout"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.class",
+        "key.length" : 2612,
+        "key.name" : "PagedListLayout",
+        "key.namelength" : 15,
+        "key.nameoffset" : 3714,
+        "key.offset" : 3708,
+        "key.parsed_declaration" : "final class PagedListLayout : ListLayout",
+        "key.parsed_scope.end" : 184,
+        "key.parsed_scope.start" : 102,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public typealias PagedListLayout<\/Type>.LayoutAppearance = PagedAppearance<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 3749
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> PagedListLayout<\/ref.class>.LayoutAppearance<\/decl.name> = PagedAppearance<\/ref.struct><\/decl.typealias>",
+            "key.kind" : "source.lang.swift.decl.typealias",
+            "key.length" : 44,
+            "key.name" : "LayoutAppearance",
+            "key.namelength" : 16,
+            "key.nameoffset" : 3766,
+            "key.offset" : 3756,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa"
+              }
+            ],
+            "key.parsed_declaration" : "public typealias LayoutAppearance = PagedAppearance",
+            "key.parsed_scope.end" : 104,
+            "key.parsed_scope.start" : 104,
+            "key.typename" : "PagedAppearance.Type",
+            "key.typeusr" : "$s10ListableUI15PagedAppearanceVmD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC0E10Appearancea"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 62,
+            "key.bodyoffset" : 3851,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+            "key.kind" : "source.lang.swift.decl.var.static",
+            "key.length" : 104,
+            "key.name" : "defaults",
+            "key.namelength" : 8,
+            "key.nameoffset" : 3821,
+            "key.offset" : 3810,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ"
+              }
+            ],
+            "key.parsed_declaration" : "static var defaults: ListLayoutDefaults",
+            "key.parsed_scope.end" : 108,
+            "key.parsed_scope.start" : 106,
+            "key.typename" : "ListLayoutDefaults",
+            "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC8defaultsAA0dE8DefaultsVvpZ"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var layoutAppearance: PagedAppearance<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: PagedAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 37,
+            "key.name" : "layoutAppearance",
+            "key.namelength" : 16,
+            "key.nameoffset" : 3928,
+            "key.offset" : 3924,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp"
+              }
+            ],
+            "key.parsed_declaration" : "var layoutAppearance: PagedAppearance",
+            "key.parsed_scope.end" : 110,
+            "key.parsed_scope.start" : 110,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
+            "key.typename" : "PagedAppearance",
+            "key.typeusr" : "$s10ListableUI15PagedAppearanceVD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC16layoutAppearanceAA0cG0Vvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let appearance: Appearance<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 26,
+            "key.name" : "appearance",
+            "key.namelength" : 10,
+            "key.nameoffset" : 3975,
+            "key.offset" : 3971,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp"
+              }
+            ],
+            "key.parsed_declaration" : "let appearance: Appearance",
+            "key.parsed_scope.end" : 112,
+            "key.parsed_scope.start" : 112,
+            "key.typename" : "Appearance",
+            "key.typeusr" : "$s10ListableUI10AppearanceVD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC10appearanceAA10AppearanceVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let behavior: Behavior<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 22,
+            "key.name" : "behavior",
+            "key.namelength" : 8,
+            "key.nameoffset" : 4006,
+            "key.offset" : 4002,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp"
+              }
+            ],
+            "key.parsed_declaration" : "let behavior: Behavior",
+            "key.parsed_scope.end" : 113,
+            "key.parsed_scope.start" : 113,
+            "key.typename" : "Behavior",
+            "key.typeusr" : "$s10ListableUI8BehaviorVD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC8behaviorAA8BehaviorVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "let content: ListLayoutContent<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 30,
+            "key.name" : "content",
+            "key.namelength" : 7,
+            "key.nameoffset" : 4033,
+            "key.offset" : 4029,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp"
+              }
+            ],
+            "key.parsed_declaration" : "let content: ListLayoutContent",
+            "key.parsed_scope.end" : 114,
+            "key.parsed_scope.start" : 114,
+            "key.typename" : "ListLayoutContent",
+            "key.typeusr" : "$s10ListableUI17ListLayoutContentCD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC7contentAA0dE7ContentCvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 415,
+            "key.bodyoffset" : 4135,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 474,
+            "key.name" : "scrollViewProperties",
+            "key.namelength" : 20,
+            "key.nameoffset" : 4081,
+            "key.offset" : 4077,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp"
+              }
+            ],
+            "key.parsed_declaration" : "var scrollViewProperties: ListLayoutScrollViewProperties",
+            "key.parsed_scope.end" : 125,
+            "key.parsed_scope.start" : 116,
+            "key.typename" : "ListLayoutScrollViewProperties",
+            "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC20scrollViewPropertiesAA0de6ScrollgH0Vvp"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 20,
+            "key.name" : "MARK: Initialization",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 4571
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "init(layoutAppearance: PagedAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>",
+            "key.bodylength" : 172,
+            "key.bodyoffset" : 4759,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: PagedAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 324,
+            "key.name" : "init(layoutAppearance:appearance:behavior:content:)",
+            "key.namelength" : 149,
+            "key.nameoffset" : 4608,
+            "key.offset" : 4608,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc"
+              }
+            ],
+            "key.parsed_declaration" : "init(\n    layoutAppearance: PagedAppearance,\n    appearance: Appearance,\n    behavior: Behavior,\n    content: ListLayoutContent\n)",
+            "key.parsed_scope.end" : 142,
+            "key.parsed_scope.start" : 131,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(PagedListLayout.Type) -> (PagedAppearance, Appearance, Behavior, ListLayoutContent) -> PagedListLayout",
+            "key.typeusr" : "$s16layoutAppearance10appearance8behavior7content10ListableUI15PagedListLayoutCAE0hB0V_AE0B0VAE8BehaviorVAE0iJ7ContentCtcD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC16layoutAppearance10appearance8behavior7contentAcA0cG0V_AA0G0VAA8BehaviorVAA0dE7ContentCtcfc"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 24,
+            "key.name" : "MARK: Performing Layouts",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 4952
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func updateLayout(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
+            "key.bodylength" : 32,
+            "key.bodyoffset" : 5054,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 94,
+            "key.name" : "updateLayout(in:)",
+            "key.namelength" : 50,
+            "key.nameoffset" : 4998,
+            "key.offset" : 4993,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF"
+              }
+            ],
+            "key.parsed_declaration" : "func updateLayout(in collectionView : UICollectionView)",
+            "key.parsed_scope.end" : 151,
+            "key.parsed_scope.start" : 148,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(PagedListLayout) -> (UICollectionView) -> ()",
+            "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC06updateE02inySo16UICollectionViewC_tF"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func layout(delegate: CollectionViewLayoutDelegate<\/Type>, in collectionView: UICollectionView<\/Type>)<\/Declaration>",
+            "key.bodylength" : 1104,
+            "key.bodyoffset" : 5213,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layout<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 1221,
+            "key.name" : "layout(delegate:in:)",
+            "key.namelength" : 109,
+            "key.nameoffset" : 5102,
+            "key.offset" : 5097,
+            "key.overrides" : [
+              {
+                "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
+              }
+            ],
+            "key.parsed_declaration" : "func layout(\n    delegate : CollectionViewLayoutDelegate,\n    in collectionView : UICollectionView  \n)",
+            "key.parsed_scope.end" : 183,
+            "key.parsed_scope.start" : 153,
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "let viewSize: CGSize<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 100,
+                "key.name" : "viewSize",
+                "key.namelength" : 8,
+                "key.nameoffset" : 5226,
+                "key.offset" : 5222,
+                "key.parsed_declaration" : "let viewSize = self.layoutAppearance.pagingSize.size(for: collectionView, direction: self.direction)",
+                "key.parsed_scope.end" : 157,
+                "key.parsed_scope.start" : 157,
+                "key.typename" : "CGSize",
+                "key.typeusr" : "$sSo6CGSizeVD",
+                "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF8viewSizeL_So6CGSizeVvp"
               },
+              {
+                "key.annotated_decl" : "var lastMaxY: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastMaxY<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 28,
+                "key.name" : "lastMaxY",
+                "key.namelength" : 8,
+                "key.nameoffset" : 5344,
+                "key.offset" : 5340,
+                "key.parsed_declaration" : "var lastMaxY : CGFloat = 0.0",
+                "key.parsed_scope.end" : 159,
+                "key.parsed_scope.start" : 159,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF8lastMaxYL_12CoreGraphics7CGFloatVvp"
+              }
+            ],
+            "key.typename" : "(PagedListLayout) -> (CollectionViewLayoutDelegate, UICollectionView) -> ()",
+            "key.typeusr" : "$s8delegate2iny10ListableUI28CollectionViewLayoutDelegate_p_So012UICollectionF0CtcD",
+            "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
+          }
+        ],
+        "key.typename" : "PagedListLayout.Type",
+        "key.typeusr" : "$s10ListableUI15PagedListLayoutCmD",
+        "key.usr" : "s:10ListableUI15PagedListLayoutC"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 887,
+    "key.offset" : 0,
+    "key.substructure" : [
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.internal",
+        "key.annotated_decl" : "enum SupplementaryKind : String<\/Type>, CaseIterable<\/Type><\/Declaration>",
+        "key.bodylength" : 724,
+        "key.bodyoffset" : 161,
+        "key.elements" : [
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 6,
+            "key.offset" : 139
+          },
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 12,
+            "key.offset" : 147
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
+        "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> SupplementaryKind<\/decl.name> : String<\/ref.struct>, CaseIterable<\/ref.protocol><\/decl.enum>",
+        "key.inheritedtypes" : [
+          {
+            "key.name" : "String"
+          },
+          {
+            "key.name" : "CaseIterable"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.enum",
+        "key.length" : 772,
+        "key.name" : "SupplementaryKind",
+        "key.namelength" : 17,
+        "key.nameoffset" : 119,
+        "key.offset" : 114,
+        "key.parsed_declaration" : "enum SupplementaryKind : String, CaseIterable",
+        "key.parsed_scope.end" : 33,
+        "key.parsed_scope.start" : 11,
+        "key.substructure" : [
+          {
+            "key.kind" : "source.lang.swift.decl.enumcase",
+            "key.length" : 39,
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 166,
+            "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var size: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 25,
-                "key.name" : "size",
-                "key.namelength" : 4,
-                "key.nameoffset" : 9879,
-                "key.offset" : 9875,
-                "key.overrides" : [
+                "key.annotated_decl" : "case listHeader = "Listable.ListHeader"<\/Declaration>",
+                "key.elements" : [
                   {
-                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP4sizeSo6CGSizeVvp"
+                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
+                    "key.length" : 21,
+                    "key.offset" : 184
                   }
                 ],
-                "key.parsed_declaration" : "var size : CGSize = .zero",
-                "key.parsed_scope.end" : 321,
-                "key.parsed_scope.start" : 321,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGSize",
-                "key.typeusr" : "$sSo6CGSizeVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC4sizeSo6CGSizeVvp"
-              },
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
+                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listHeader<\/decl.name> = "Listable.ListHeader"<\/syntaxtype.string><\/decl.enumelement>",
+                "key.kind" : "source.lang.swift.decl.enumelement",
+                "key.length" : 34,
+                "key.name" : "listHeader",
+                "key.namelength" : 10,
+                "key.nameoffset" : 171,
+                "key.offset" : 171,
+                "key.parsed_declaration" : "case listHeader = \"Listable.ListHeader\"",
+                "key.parsed_scope.end" : 13,
+                "key.parsed_scope.start" : 13,
+                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
+                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
+                "key.usr" : "s:10ListableUI17SupplementaryKindO10listHeaderyA2CmF"
+              }
+            ]
+          },
+          {
+            "key.kind" : "source.lang.swift.decl.enumcase",
+            "key.length" : 39,
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 210,
+            "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var x: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 23,
-                "key.name" : "x",
-                "key.namelength" : 1,
-                "key.nameoffset" : 9922,
-                "key.offset" : 9918,
-                "key.overrides" : [
+                "key.annotated_decl" : "case listFooter = "Listable.ListFooter"<\/Declaration>",
+                "key.elements" : [
                   {
-                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP1x12CoreGraphics7CGFloatVvp"
+                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
+                    "key.length" : 21,
+                    "key.offset" : 228
                   }
                 ],
-                "key.parsed_declaration" : "var x : CGFloat = .zero",
-                "key.parsed_scope.end" : 323,
-                "key.parsed_scope.start" : 323,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC1x12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var pinnedX: CGFloat<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pinnedX<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 28,
-                "key.name" : "pinnedX",
-                "key.namelength" : 7,
-                "key.nameoffset" : 9954,
-                "key.offset" : 9950,
-                "key.parsed_declaration" : "var pinnedX : CGFloat? = nil",
-                "key.parsed_scope.end" : 324,
-                "key.parsed_scope.start" : 324,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGFloat?",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC7pinnedX12CoreGraphics7CGFloatVSgvp"
-              },
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
+                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listFooter<\/decl.name> = "Listable.ListFooter"<\/syntaxtype.string><\/decl.enumelement>",
+                "key.kind" : "source.lang.swift.decl.enumelement",
+                "key.length" : 34,
+                "key.name" : "listFooter",
+                "key.namelength" : 10,
+                "key.nameoffset" : 215,
+                "key.offset" : 215,
+                "key.parsed_declaration" : "case listFooter = \"Listable.ListFooter\"",
+                "key.parsed_scope.end" : 14,
+                "key.parsed_scope.start" : 14,
+                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
+                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
+                "key.usr" : "s:10ListableUI17SupplementaryKindO10listFooteryA2CmF"
+              }
+            ]
+          },
+          {
+            "key.kind" : "source.lang.swift.decl.enumcase",
+            "key.length" : 45,
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 259,
+            "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var y: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 23,
-                "key.name" : "y",
-                "key.namelength" : 1,
-                "key.nameoffset" : 10000,
-                "key.offset" : 9996,
-                "key.overrides" : [
+                "key.annotated_decl" : "case sectionHeader = "Listable.SectionHeader"<\/Declaration>",
+                "key.elements" : [
                   {
-                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP1y12CoreGraphics7CGFloatVvp"
+                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
+                    "key.length" : 24,
+                    "key.offset" : 280
                   }
                 ],
-                "key.parsed_declaration" : "var y : CGFloat = .zero",
-                "key.parsed_scope.end" : 326,
-                "key.parsed_scope.start" : 326,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC1y12CoreGraphics7CGFloatVvp"
-              },
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
+                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionHeader<\/decl.name> = "Listable.SectionHeader"<\/syntaxtype.string><\/decl.enumelement>",
+                "key.kind" : "source.lang.swift.decl.enumelement",
+                "key.length" : 40,
+                "key.name" : "sectionHeader",
+                "key.namelength" : 13,
+                "key.nameoffset" : 264,
+                "key.offset" : 264,
+                "key.parsed_declaration" : "case sectionHeader = \"Listable.SectionHeader\"",
+                "key.parsed_scope.end" : 16,
+                "key.parsed_scope.start" : 16,
+                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
+                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
+                "key.usr" : "s:10ListableUI17SupplementaryKindO13sectionHeaderyA2CmF"
+              }
+            ]
+          },
+          {
+            "key.kind" : "source.lang.swift.decl.enumcase",
+            "key.length" : 45,
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 309,
+            "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var pinnedY: CGFloat<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> pinnedY<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 28,
-                "key.name" : "pinnedY",
-                "key.namelength" : 7,
-                "key.nameoffset" : 10032,
-                "key.offset" : 10028,
-                "key.parsed_declaration" : "var pinnedY : CGFloat? = nil",
-                "key.parsed_scope.end" : 327,
-                "key.parsed_scope.start" : 327,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGFloat?",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC7pinnedY12CoreGraphics7CGFloatVSgvp"
-              },
+                "key.annotated_decl" : "case sectionFooter = "Listable.SectionFooter"<\/Declaration>",
+                "key.elements" : [
+                  {
+                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
+                    "key.length" : 24,
+                    "key.offset" : 330
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
+                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionFooter<\/decl.name> = "Listable.SectionFooter"<\/syntaxtype.string><\/decl.enumelement>",
+                "key.kind" : "source.lang.swift.decl.enumelement",
+                "key.length" : 40,
+                "key.name" : "sectionFooter",
+                "key.namelength" : 13,
+                "key.nameoffset" : 314,
+                "key.offset" : 314,
+                "key.parsed_declaration" : "case sectionFooter = \"Listable.SectionFooter\"",
+                "key.parsed_scope.end" : 17,
+                "key.parsed_scope.start" : 17,
+                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
+                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
+                "key.usr" : "s:10ListableUI17SupplementaryKindO13sectionFooteryA2CmF"
+              }
+            ]
+          },
+          {
+            "key.kind" : "source.lang.swift.decl.enumcase",
+            "key.length" : 51,
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 364,
+            "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var zIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 20,
-                "key.name" : "zIndex",
-                "key.namelength" : 6,
-                "key.nameoffset" : 10078,
-                "key.offset" : 10074,
-                "key.overrides" : [
+                "key.annotated_decl" : "case overscrollFooter = "Listable.OverscrollFooter"<\/Declaration>",
+                "key.elements" : [
                   {
-                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp"
+                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
+                    "key.length" : 27,
+                    "key.offset" : 388
                   }
                 ],
-                "key.parsed_declaration" : "var zIndex : Int = 0",
-                "key.parsed_scope.end" : 329,
-                "key.parsed_scope.start" : 329,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "Int",
-                "key.typeusr" : "$sSiD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC6zIndexSivp"
-              },
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
+                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> overscrollFooter<\/decl.name> = "Listable.OverscrollFooter"<\/syntaxtype.string><\/decl.enumelement>",
+                "key.kind" : "source.lang.swift.decl.enumelement",
+                "key.length" : 46,
+                "key.name" : "overscrollFooter",
+                "key.namelength" : 16,
+                "key.nameoffset" : 369,
+                "key.offset" : 369,
+                "key.parsed_declaration" : "case overscrollFooter = \"Listable.OverscrollFooter\"",
+                "key.parsed_scope.end" : 19,
+                "key.parsed_scope.start" : 19,
+                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
+                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
+                "key.usr" : "s:10ListableUI17SupplementaryKindO16overscrollFooteryA2CmF"
+              }
+            ]
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "func indexPath(in section: Int<\/Type>) -> IndexPath<\/Type><\/Declaration>",
+            "key.bodylength" : 407,
+            "key.bodyoffset" : 476,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> indexPath<\/decl.name>(in<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 459,
+            "key.name" : "indexPath(in:)",
+            "key.namelength" : 27,
+            "key.nameoffset" : 430,
+            "key.offset" : 425,
+            "key.parsed_declaration" : "func indexPath(in section : Int) -> IndexPath",
+            "key.parsed_scope.end" : 32,
+            "key.parsed_scope.start" : 21,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(SupplementaryKind) -> (Int) -> IndexPath",
+            "key.typeusr" : "$s2in10Foundation9IndexPathVSi_tcD",
+            "key.usr" : "s:10ListableUI17SupplementaryKindO9indexPath2in10Foundation05IndexF0VSi_tF"
+          }
+        ],
+        "key.typename" : "SupplementaryKind.Type",
+        "key.typeusr" : "$s10ListableUI17SupplementaryKindOmD",
+        "key.usr" : "s:10ListableUI17SupplementaryKindO"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 35966,
+    "key.offset" : 0,
+    "key.substructure" : [
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public struct LayoutDescription<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 114
+          }
+        ],
+        "key.bodylength" : 165,
+        "key.bodyoffset" : 150,
+        "key.doc.column" : 15,
+        "key.doc.declaration" : "public struct LayoutDescription",
+        "key.doc.discussion" : [
+          {
+            "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type."
+          },
+          {
+            "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "Or a layout for your own custom layout type would look somewhat like this:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)."
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 42,
+        "key.doc.name" : "LayoutDescription",
+        "key.doc.type" : "Class",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 195,
+        "key.name" : "LayoutDescription",
+        "key.namelength" : 17,
+        "key.nameoffset" : 131,
+        "key.offset" : 121,
+        "key.parsed_declaration" : "public extension LayoutDescription",
+        "key.parsed_scope.end" : 17,
+        "key.parsed_scope.start" : 11,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "static func table(_ configure: @escaping (inout TableAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>",
+            "key.bodylength" : 61,
+            "key.bodyoffset" : 252,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> table<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> TableAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
+            "key.kind" : "source.lang.swift.decl.function.method.static",
+            "key.length" : 159,
+            "key.name" : "table(_:)",
+            "key.namelength" : 71,
+            "key.nameoffset" : 167,
+            "key.offset" : 155,
+            "key.parsed_declaration" : "static func table(_ configure : @escaping (inout TableAppearance) -> () = { _ in }) -> Self",
+            "key.parsed_scope.end" : 16,
+            "key.parsed_scope.start" : 13,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(LayoutDescription.Type) -> (@escaping (inout TableAppearance) -> ()) -> LayoutDescription",
+            "key.typeusr" : "$sy10ListableUI17LayoutDescriptionVyAA15TableAppearanceVzccD",
+            "key.usr" : "s:10ListableUI17LayoutDescriptionV5tableyACyAA15TableAppearanceVzcFZ"
+          }
+        ],
+        "key.typename" : "LayoutDescription.Type",
+        "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD",
+        "key.usr" : "s:10ListableUI17LayoutDescriptionV"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public struct TableAppearance : ListLayoutAppearance<\/Type><\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 9877
+          }
+        ],
+        "key.bodylength" : 706,
+        "key.bodyoffset" : 9931,
+        "key.doc.column" : 15,
+        "key.doc.comment" : "\n`TableAppearance` defines the appearance and layout attribute for list layouts within a Listable list.\n\nThe below diagram shows where each of the properties on the `TableAppearance.Layout` values are\napplied when laying out the list.\n\nNote\n----\nDo not edit this ASCII diagram directly.\nEdit the `TableAppearance.monopic` file in this directory using Monodraw.\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                          padding.top                            │\n│   ┌─────────────────────────────────────────────────────────┐   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│   ││                      List Header                      ││   │\n│   ││                                                       ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                                                         │   │\n│   │               headerToFirstSectionSpacing               │   │\n│   │                                                         │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│   ││                    Section Header                     ││   │\n│   ││                                                       ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │               sectionHeaderBottomSpacing                │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                       itemSpacing                       │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │               itemToSectionFooterSpacing                │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│ p ││                    Section Footer                     ││ p │\n│ a ││                                                       ││ a │\n│ d │└───────────────────────────────────────────────────────┘│ d │\n│ d │                                                         │ d │\n│ i │               interSectionSpacingWithFooter             │ i │\n│ n │                                                         │ n │\n│ g │┌───────────────────────────────────────────────────────┐│ g │\n│ . ││                                                       ││ . │\n│ l ││                    Section Header                     ││ r │\n│ e ││                                                       ││ i │\n│ f │└───────────────────────────────────────────────────────┘│ g │\n│ t │               sectionHeaderBottomSpacing                │ h │\n│   │┌───────────────────────────────────────────────────────┐│ t │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                       itemSpacing                       │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                                                         │   │\n│   │              interSectionSpacingWithNoFooter            │   │\n│   │                                                         │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│   ││                    Section Header                     ││   │\n│   ││                                                       ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │               sectionHeaderBottomSpacing                │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                       itemSpacing                       │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                         Item                          ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   │                                                         │   │\n│   │               lastSectionToFooterSpacing                │   │\n│   │                                                         │   │\n│   │┌───────────────────────────────────────────────────────┐│   │\n│   ││                                                       ││   │\n│   ││                      List Footer                      ││   │\n│   ││                                                       ││   │\n│   │└───────────────────────────────────────────────────────┘│   │\n│   └─────────────────────────────────────────────────────────┘   │\n│                         padding.bottom                          │\n└─────────────────────────────────────────────────────────────────┘\n```",
+        "key.doc.declaration" : "public struct TableAppearance : ListLayoutAppearance",
+        "key.doc.discussion" : [
+          {
+            "Para" : "The below diagram shows where each of the properties on the `TableAppearance.Layout` values are applied when laying out the list."
+          },
+          {
+            "Para" : "Do not edit this ASCII diagram directly. Edit the `TableAppearance.monopic` file in this directory using Monodraw."
+          },
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+        "key.doc.full_as_xml" : "TableAppearance<\/Name>s:10ListableUI15TableAppearanceV<\/USR>public struct TableAppearance : ListLayoutAppearance<\/Declaration>TableAppearance<\/codeVoice> defines the appearance and layout attribute for list layouts within a Listable list.<\/Para><\/Abstract>The below diagram shows where each of the properties on the TableAppearance.Layout<\/codeVoice> values are applied when laying out the list.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not edit this ASCII diagram directly. Edit the TableAppearance.monopic<\/codeVoice> file in this directory using Monodraw.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 105,
+        "key.doc.name" : "TableAppearance",
+        "key.doc.type" : "Class",
+        "key.doclength" : 9558,
+        "key.docoffset" : 319,
+        "key.elements" : [
+          {
+            "key.kind" : "source.lang.swift.structure.elem.typeref",
+            "key.length" : 20,
+            "key.offset" : 9909
+          }
+        ],
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> TableAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>",
+        "key.inheritedtypes" : [
+          {
+            "key.name" : "ListLayoutAppearance"
+          }
+        ],
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 754,
+        "key.name" : "TableAppearance",
+        "key.namelength" : 15,
+        "key.nameoffset" : 9891,
+        "key.offset" : 9884,
+        "key.parsed_declaration" : "public struct TableAppearance : ListLayoutAppearance",
+        "key.parsed_scope.end" : 133,
+        "key.parsed_scope.start" : 105,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var direction: LayoutDirection<\/Type> { get }<\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var defaultFrame: CGRect<\/Type> { get }<\/Declaration>",
-                "key.bodylength" : 130,
-                "key.bodyoffset" : 10139,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 158,
-                "key.name" : "defaultFrame",
-                "key.namelength" : 12,
-                "key.nameoffset" : 10116,
-                "key.offset" : 10112,
-                "key.parsed_declaration" : "var defaultFrame : CGRect",
-                "key.parsed_scope.end" : 336,
-                "key.parsed_scope.start" : 331,
-                "key.typename" : "CGRect",
-                "key.typeusr" : "$sSo6CGRectVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC12defaultFrameSo6CGRectVvp"
-              },
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 9936
+              }
+            ],
+            "key.bodylength" : 23,
+            "key.bodyoffset" : 9975,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 56,
+            "key.name" : "direction",
+            "key.namelength" : 9,
+            "key.nameoffset" : 9947,
+            "key.offset" : 9943,
+            "key.overrides" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var visibleFrame: CGRect<\/Type> { get }<\/Declaration>",
-                "key.bodylength" : 220,
-                "key.bodyoffset" : 10315,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> visibleFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 248,
-                "key.name" : "visibleFrame",
-                "key.namelength" : 12,
-                "key.nameoffset" : 10292,
-                "key.offset" : 10288,
-                "key.parsed_declaration" : "var visibleFrame : CGRect",
-                "key.parsed_scope.end" : 346,
-                "key.parsed_scope.start" : 338,
-                "key.typename" : "CGRect",
-                "key.typeusr" : "$sSo6CGRectVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC12visibleFrameSo6CGRectVvp"
-              },
+                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp"
+              }
+            ],
+            "key.parsed_declaration" : "public var direction: LayoutDirection",
+            "key.parsed_scope.end" : 109,
+            "key.parsed_scope.start" : 107,
+            "key.typename" : "LayoutDirection",
+            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV9directionAA15LayoutDirectionOvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var stickySectionHeaders: Bool<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "init(kind: SupplementaryKind<\/Type>, layout: HeaderFooterLayout<\/Type>, isPopulated: Bool<\/Type>, measurer: @escaping (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type>)<\/Declaration>",
-                "key.bodylength" : 164,
-                "key.bodyoffset" : 10745,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(kind<\/decl.var.parameter.argument_label>: SupplementaryKind<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: HeaderFooterLayout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, isPopulated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, measurer<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 356,
-                "key.name" : "init(kind:layout:isPopulated:measurer:)",
-                "key.namelength" : 189,
-                "key.nameoffset" : 10554,
-                "key.offset" : 10554,
-                "key.parsed_declaration" : "init(\n    kind : SupplementaryKind,\n    layout : HeaderFooterLayout,\n    isPopulated: Bool,\n    measurer : @escaping (Sizing.MeasureInfo) -> CGSize\n)",
-                "key.parsed_scope.end" : 359,
-                "key.parsed_scope.start" : 348,
-                "key.substructure" : [
-
-                ],
-                "key.typename" : "(ListLayoutContent.SupplementaryItemInfo.Type) -> (SupplementaryKind, HeaderFooterLayout, Bool, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.SupplementaryItemInfo",
-                "key.typeusr" : "$s4kind6layout11isPopulated8measurer10ListableUI17ListLayoutContentC21SupplementaryItemInfoCAE0K4KindO_AE012HeaderFooterI0VSbSo6CGSizeVAE6SizingO07MeasureM0VctcD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC4kind6layout11isPopulated8measurerAeA0F4KindO_AA012HeaderFooterD0VSbSo6CGSizeVAA6SizingO07MeasureH0Vctcfc"
-              },
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 10009
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 31,
+            "key.name" : "stickySectionHeaders",
+            "key.namelength" : 20,
+            "key.nameoffset" : 10020,
+            "key.offset" : 10016,
+            "key.overrides" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "func layoutAttributes(with indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
-                "key.bodylength" : 285,
-                "key.bodyoffset" : 11023,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(with<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 381,
-                "key.name" : "layoutAttributes(with:)",
-                "key.namelength" : 44,
-                "key.nameoffset" : 10933,
-                "key.offset" : 10928,
-                "key.parsed_declaration" : "func layoutAttributes(with indexPath : IndexPath) -> UICollectionViewLayoutAttributes",
-                "key.parsed_scope.end" : 369,
-                "key.parsed_scope.start" : 361,
-                "key.substructure" : [
-                  {
-                    "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 114,
-                    "key.name" : "attributes",
-                    "key.namelength" : 10,
-                    "key.nameoffset" : 11040,
-                    "key.offset" : 11036,
-                    "key.parsed_declaration" : "let attributes = UICollectionViewLayoutAttributes(forSupplementaryViewOfKind: self.kind.rawValue, with: indexPath)",
-                    "key.parsed_scope.end" : 363,
-                    "key.parsed_scope.start" : 363,
-                    "key.typename" : "UICollectionViewLayoutAttributes",
-                    "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCD",
-                    "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC16layoutAttributes4withSo016UICollectionViewdJ0C10Foundation9IndexPathV_tF10attributesL_AIvp"
-                  }
-                ],
-                "key.typename" : "(ListLayoutContent.SupplementaryItemInfo) -> (IndexPath) -> UICollectionViewLayoutAttributes",
-                "key.typeusr" : "$s4withSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_tcD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC16layoutAttributes4withSo016UICollectionViewdJ0C10Foundation9IndexPathV_tF"
+                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp"
+              }
+            ],
+            "key.parsed_declaration" : "public var stickySectionHeaders : Bool",
+            "key.parsed_scope.end" : 111,
+            "key.parsed_scope.start" : 111,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "Bool",
+            "key.typeusr" : "$sSbD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV20stickySectionHeadersSbvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var sizing: Sizing<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 10116
+              }
+            ],
+            "key.doc.column" : 16,
+            "key.doc.comment" : "Default sizing attributes for content in the list.",
+            "key.doc.declaration" : "public var sizing: Sizing",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.doc.full_as_xml" : "sizing<\/Name>s:10ListableUI15TableAppearanceV6sizingAC6SizingVvp<\/USR>public var sizing: Sizing<\/Declaration>Default sizing attributes for content in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 114,
+            "key.doc.name" : "sizing",
+            "key.doc.type" : "Other",
+            "key.doclength" : 55,
+            "key.docoffset" : 10057,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sizing<\/decl.name>: Sizing<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 19,
+            "key.name" : "sizing",
+            "key.namelength" : 6,
+            "key.nameoffset" : 10127,
+            "key.offset" : 10123,
+            "key.parsed_declaration" : "public var sizing : Sizing",
+            "key.parsed_scope.end" : 114,
+            "key.parsed_scope.start" : 114,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "TableAppearance.Sizing",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV6SizingVD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV6sizingAC6SizingVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var layout: Layout<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 10203
               }
             ],
-            "key.typename" : "ListLayoutContent.SupplementaryItemInfo.Type",
-            "key.typeusr" : "$s10ListableUI17ListLayoutContentC21SupplementaryItemInfoCmD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC"
+            "key.doc.column" : 16,
+            "key.doc.comment" : "Layout attributes for content in the list.",
+            "key.doc.declaration" : "public var layout: Layout",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI15TableAppearanceV6layoutAC6LayoutVvp<\/USR>public var layout: Layout<\/Declaration>Layout attributes for content in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 117,
+            "key.doc.name" : "layout",
+            "key.doc.type" : "Other",
+            "key.doclength" : 47,
+            "key.docoffset" : 10152,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: Layout<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 19,
+            "key.name" : "layout",
+            "key.namelength" : 6,
+            "key.nameoffset" : 10214,
+            "key.offset" : 10210,
+            "key.parsed_declaration" : "public var layout : Layout",
+            "key.parsed_scope.end" : 117,
+            "key.parsed_scope.start" : 117,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "TableAppearance.Layout",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV6LayoutVD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV6layoutAC6LayoutVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "final class ItemInfo : ListLayoutContentItem<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public static var `default`: TableAppearance<\/Type> { get }<\/Declaration>",
             "key.attributes" : [
               {
-                "key.attribute" : "source.decl.attribute.final",
-                "key.length" : 5,
-                "key.offset" : 11326
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 10239
               }
             ],
-            "key.bodylength" : 1603,
-            "key.bodyoffset" : 11376,
-            "key.elements" : [
+            "key.bodylength" : 32,
+            "key.bodyoffset" : 10285,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: TableAppearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+            "key.kind" : "source.lang.swift.decl.var.static",
+            "key.length" : 72,
+            "key.name" : "default",
+            "key.namelength" : 7,
+            "key.nameoffset" : 10257,
+            "key.offset" : 10246,
+            "key.overrides" : [
               {
-                "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 21,
-                "key.offset" : 11349
+                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ"
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemInfo<\/decl.name> : ListLayoutContentItem<\/ref.protocol><\/decl.class>",
-            "key.inheritedtypes" : [
+            "key.parsed_declaration" : "public static var `default`: TableAppearance",
+            "key.parsed_scope.end" : 121,
+            "key.parsed_scope.start" : 119,
+            "key.typename" : "TableAppearance",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceVD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV7defaultACvpZ"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public init(stickySectionHeaders: Bool<\/Type> = true, sizing: Sizing<\/Type> = Sizing(), layout: Layout<\/Type> = Layout())<\/Declaration>",
+            "key.attributes" : [
               {
-                "key.name" : "ListLayoutContentItem"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 10380
               }
             ],
-            "key.kind" : "source.lang.swift.decl.class",
-            "key.length" : 1648,
-            "key.name" : "ItemInfo",
-            "key.namelength" : 8,
-            "key.nameoffset" : 11338,
-            "key.offset" : 11332,
-            "key.parsed_declaration" : "final class ItemInfo : ListLayoutContentItem",
-            "key.parsed_scope.end" : 423,
-            "key.parsed_scope.start" : 373,
+            "key.bodylength" : 120,
+            "key.bodyoffset" : 10515,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Creates a new `TableAppearance` object.",
+            "key.doc.declaration" : "public init(stickySectionHeaders: Bool = true, sizing: Sizing = Sizing(), layout: Layout = Layout())",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.doc.full_as_xml" : "init(stickySectionHeaders:sizing:layout:)<\/Name>s:10ListableUI15TableAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc<\/USR>public init(stickySectionHeaders: Bool = true, sizing: Sizing = Sizing(), layout: Layout = Layout())<\/Declaration>Creates a new TableAppearance<\/codeVoice> object.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.line" : 124,
+            "key.doc.name" : "init(stickySectionHeaders:sizing:layout:)",
+            "key.doc.type" : "Function",
+            "key.doclength" : 44,
+            "key.docoffset" : 10332,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(stickySectionHeaders<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = true<\/decl.var.parameter>, sizing<\/decl.var.parameter.argument_label>: Sizing<\/ref.struct><\/decl.var.parameter.type> = Sizing()<\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: Layout<\/ref.struct><\/decl.var.parameter.type> = Layout()<\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 249,
+            "key.name" : "init(stickySectionHeaders:sizing:layout:)",
+            "key.namelength" : 126,
+            "key.nameoffset" : 10387,
+            "key.offset" : 10387,
+            "key.parsed_declaration" : "public init(\n    stickySectionHeaders : Bool = true,\n    sizing : Sizing = Sizing(),\n    layout : Layout = Layout()\n)",
+            "key.parsed_scope.end" : 132,
+            "key.parsed_scope.start" : 124,
             "key.substructure" : [
+
+            ],
+            "key.typename" : "(TableAppearance.Type) -> (Bool, TableAppearance.Sizing, TableAppearance.Layout) -> TableAppearance",
+            "key.typeusr" : "$s20stickySectionHeaders6sizing6layout10ListableUI15TableAppearanceVSb_AF6SizingVAF6LayoutVtcD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc"
+          }
+        ],
+        "key.typename" : "TableAppearance.Type",
+        "key.typeusr" : "$s10ListableUI15TableAppearanceVmD",
+        "key.usr" : "s:10ListableUI15TableAppearanceV"
+      },
+      {
+        "key.annotated_decl" : "public struct TableAppearance : ListLayoutAppearance<\/Type><\/Declaration>",
+        "key.bodylength" : 8165,
+        "key.bodyoffset" : 10668,
+        "key.doc.column" : 15,
+        "key.doc.declaration" : "public struct TableAppearance : ListLayoutAppearance",
+        "key.doc.discussion" : [
+          {
+            "Para" : "The below diagram shows where each of the properties on the `TableAppearance.Layout` values are applied when laying out the list."
+          },
+          {
+            "Para" : "Do not edit this ASCII diagram directly. Edit the `TableAppearance.monopic` file in this directory using Monodraw."
+          },
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+        "key.doc.full_as_xml" : "TableAppearance<\/Name>s:10ListableUI15TableAppearanceV<\/USR>public struct TableAppearance : ListLayoutAppearance<\/Declaration>TableAppearance<\/codeVoice> defines the appearance and layout attribute for list layouts within a Listable list.<\/Para><\/Abstract>The below diagram shows where each of the properties on the TableAppearance.Layout<\/codeVoice> values are applied when laying out the list.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not edit this ASCII diagram directly. Edit the TableAppearance.monopic<\/codeVoice> file in this directory using Monodraw.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 105,
+        "key.doc.name" : "TableAppearance",
+        "key.doc.type" : "Class",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> TableAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 8193,
+        "key.name" : "TableAppearance",
+        "key.namelength" : 15,
+        "key.nameoffset" : 10651,
+        "key.offset" : 10641,
+        "key.parsed_declaration" : "extension TableAppearance",
+        "key.parsed_scope.end" : 363,
+        "key.parsed_scope.start" : 136,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public struct ItemLayout : Equatable<\/Type>, ItemLayoutsValue<\/Type><\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var delegateProvidedIndexPath: IndexPath<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> delegateProvidedIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 41,
-                "key.name" : "delegateProvidedIndexPath",
-                "key.namelength" : 25,
-                "key.nameoffset" : 11389,
-                "key.offset" : 11385,
-                "key.parsed_declaration" : "var delegateProvidedIndexPath : IndexPath",
-                "key.parsed_scope.end" : 375,
-                "key.parsed_scope.start" : 375,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "IndexPath",
-                "key.typeusr" : "$s10Foundation9IndexPathVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC25delegateProvidedIndexPath10Foundation0jK0Vvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var liveIndexPath: IndexPath<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> liveIndexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 29,
-                "key.name" : "liveIndexPath",
-                "key.namelength" : 13,
-                "key.nameoffset" : 11439,
-                "key.offset" : 11435,
-                "key.parsed_declaration" : "var liveIndexPath : IndexPath",
-                "key.parsed_scope.end" : 376,
-                "key.parsed_scope.start" : 376,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "IndexPath",
-                "key.typeusr" : "$s10Foundation9IndexPathVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC13liveIndexPath10Foundation0iJ0Vvp"
-              },
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 10673
+              }
+            ],
+            "key.bodylength" : 571,
+            "key.bodyoffset" : 10733,
+            "key.elements" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let layout: ItemLayout<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: ItemLayout<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 23,
-                "key.name" : "layout",
-                "key.namelength" : 6,
-                "key.nameoffset" : 11486,
-                "key.offset" : 11482,
-                "key.parsed_declaration" : "let layout : ItemLayout",
-                "key.parsed_scope.end" : 378,
-                "key.parsed_scope.start" : 378,
-                "key.typename" : "ItemLayout",
-                "key.typeusr" : "$s10ListableUI10ItemLayoutVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC6layoutAA0fD0Vvp"
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 9,
+                "key.offset" : 10700
               },
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 61,
-                "key.name" : "insertAndRemoveAnimations",
-                "key.namelength" : 25,
-                "key.nameoffset" : 11518,
-                "key.offset" : 11514,
-                "key.parsed_declaration" : "let insertAndRemoveAnimations : ItemInsertAndRemoveAnimations",
-                "key.parsed_scope.end" : 379,
-                "key.parsed_scope.start" : 379,
-                "key.typename" : "ItemInsertAndRemoveAnimations",
-                "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC25insertAndRemoveAnimationsAA0f6InsertijK0Vvp"
-              },
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 16,
+                "key.offset" : 10711
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayout<\/decl.name> : Equatable<\/ref.protocol>, ItemLayoutsValue<\/ref.protocol><\/decl.struct>",
+            "key.inheritedtypes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "let measurer: (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> measurer<\/decl.name>: (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 45,
-                "key.name" : "measurer",
-                "key.namelength" : 8,
-                "key.nameoffset" : 11588,
-                "key.offset" : 11584,
-                "key.parsed_declaration" : "let measurer : (Sizing.MeasureInfo) -> CGSize",
-                "key.parsed_scope.end" : 380,
-                "key.parsed_scope.start" : 380,
-                "key.typename" : "(Sizing.MeasureInfo) -> CGSize",
-                "key.typeusr" : "$sySo6CGSizeV10ListableUI6SizingO11MeasureInfoVcD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC8measurerySo6CGSizeVAA6SizingO07MeasureG0Vcvp"
+                "key.name" : "Equatable"
               },
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var position: ItemPosition<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> position<\/decl.name>: ItemPosition<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 37,
-                "key.name" : "position",
-                "key.namelength" : 8,
-                "key.nameoffset" : 11651,
-                "key.offset" : 11647,
-                "key.parsed_declaration" : "var position : ItemPosition = .single",
-                "key.parsed_scope.end" : 382,
-                "key.parsed_scope.start" : 382,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "ItemPosition",
-                "key.typeusr" : "$s10ListableUI12ItemPositionOD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC8positionAA0F8PositionOvp"
-              },
+                "key.name" : "ItemLayoutsValue"
+              }
+            ],
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 625,
+            "key.name" : "ItemLayout",
+            "key.namelength" : 10,
+            "key.nameoffset" : 10687,
+            "key.offset" : 10680,
+            "key.parsed_declaration" : "public struct ItemLayout : Equatable, ItemLayoutsValue",
+            "key.parsed_scope.end" : 159,
+            "key.parsed_scope.start" : 138,
+            "key.substructure" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var size: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 25,
-                "key.name" : "size",
-                "key.namelength" : 4,
-                "key.nameoffset" : 11714,
-                "key.offset" : 11710,
-                "key.overrides" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var itemSpacing: CGFloat<\/Type>?<\/Declaration>",
+                "key.attributes" : [
                   {
-                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP4sizeSo6CGSizeVvp"
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 10742
                   }
                 ],
-                "key.parsed_declaration" : "var size : CGSize = .zero",
-                "key.parsed_scope.end" : 384,
-                "key.parsed_scope.start" : 384,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGSize",
-                "key.typeusr" : "$sSo6CGSizeVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC4sizeSo6CGSizeVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var x: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 23,
-                "key.name" : "x",
-                "key.namelength" : 1,
-                "key.nameoffset" : 11765,
-                "key.offset" : 11761,
-                "key.overrides" : [
-                  {
-                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP1x12CoreGraphics7CGFloatVvp"
-                  }
-                ],
-                "key.parsed_declaration" : "var x : CGFloat = .zero",
-                "key.parsed_scope.end" : 386,
-                "key.parsed_scope.start" : 386,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC1x12CoreGraphics7CGFloatVvp"
+                "key.length" : 26,
+                "key.name" : "itemSpacing",
+                "key.namelength" : 11,
+                "key.nameoffset" : 10753,
+                "key.offset" : 10749,
+                "key.parsed_declaration" : "public var itemSpacing : CGFloat?",
+                "key.parsed_scope.end" : 140,
+                "key.parsed_scope.start" : 140,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat?",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV11itemSpacing12CoreGraphics7CGFloatVSgvp"
               },
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var y: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 23,
-                "key.name" : "y",
-                "key.namelength" : 1,
-                "key.nameoffset" : 11797,
-                "key.offset" : 11793,
-                "key.overrides" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var itemToSectionFooterSpacing: CGFloat<\/Type>?<\/Declaration>",
+                "key.attributes" : [
                   {
-                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP1y12CoreGraphics7CGFloatVvp"
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 10784
                   }
                 ],
-                "key.parsed_declaration" : "var y : CGFloat = .zero",
-                "key.parsed_scope.end" : 387,
-                "key.parsed_scope.start" : 387,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC1y12CoreGraphics7CGFloatVvp"
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemToSectionFooterSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 41,
+                "key.name" : "itemToSectionFooterSpacing",
+                "key.namelength" : 26,
+                "key.nameoffset" : 10795,
+                "key.offset" : 10791,
+                "key.parsed_declaration" : "public var itemToSectionFooterSpacing : CGFloat?",
+                "key.parsed_scope.end" : 141,
+                "key.parsed_scope.start" : 141,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat?",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVSgvp"
               },
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var zIndex: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> zIndex<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 20,
-                "key.name" : "zIndex",
-                "key.namelength" : 6,
-                "key.nameoffset" : 11838,
-                "key.offset" : 11834,
-                "key.overrides" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>",
+                "key.attributes" : [
                   {
-                    "key.usr" : "s:10ListableUI21ListLayoutContentItemP6zIndexSivp"
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 10850
                   }
                 ],
-                "key.parsed_declaration" : "var zIndex : Int = 0",
-                "key.parsed_scope.end" : 389,
-                "key.parsed_scope.start" : 389,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-                "key.typename" : "Int",
-                "key.typeusr" : "$sSiD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC6zIndexSivp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var frame: CGRect<\/Type> { get }<\/Declaration>",
-                "key.bodylength" : 130,
-                "key.bodyoffset" : 11892,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 151,
-                "key.name" : "frame",
+                "key.length" : 23,
+                "key.name" : "width",
                 "key.namelength" : 5,
-                "key.nameoffset" : 11876,
-                "key.offset" : 11872,
-                "key.parsed_declaration" : "var frame : CGRect",
-                "key.parsed_scope.end" : 396,
-                "key.parsed_scope.start" : 391,
-                "key.typename" : "CGRect",
-                "key.typeusr" : "$sSo6CGRectVD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC5frameSo6CGRectVvp"
+                "key.nameoffset" : 10861,
+                "key.offset" : 10857,
+                "key.parsed_declaration" : "public var width : CustomWidth",
+                "key.parsed_scope.end" : 143,
+                "key.parsed_scope.start" : 143,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CustomWidth",
+                "key.typeusr" : "$s10ListableUI11CustomWidthOD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV5widthAA11CustomWidthOvp"
               },
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "init(delegateProvidedIndexPath: IndexPath<\/Type>, liveIndexPath: IndexPath<\/Type>, layout: ItemLayout<\/Type>, insertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>, measurer: @escaping (Sizing<\/Type>.MeasureInfo<\/Type>) -> CGSize<\/Type>)<\/Declaration>",
-                "key.bodylength" : 306,
-                "key.bodyoffset" : 12316,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(delegateProvidedIndexPath<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, liveIndexPath<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: ItemLayout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, insertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, measurer<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Sizing<\/ref.enum>.MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public init(itemSpacing: CGFloat<\/Type>? = nil, itemToSectionFooterSpacing: CGFloat<\/Type>? = nil, width: CustomWidth<\/Type> = .default)<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 10902
+                  }
+                ],
+                "key.bodylength" : 139,
+                "key.bodyoffset" : 11068,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, itemToSectionFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 582,
-                "key.name" : "init(delegateProvidedIndexPath:liveIndexPath:layout:insertAndRemoveAnimations:measurer:)",
-                "key.namelength" : 273,
-                "key.nameoffset" : 12041,
-                "key.offset" : 12041,
-                "key.parsed_declaration" : "init(\n    delegateProvidedIndexPath : IndexPath,\n    liveIndexPath : IndexPath,\n    layout : ItemLayout,\n    insertAndRemoveAnimations : ItemInsertAndRemoveAnimations,\n    measurer : @escaping (Sizing.MeasureInfo) -> CGSize\n)",
-                "key.parsed_scope.end" : 412,
-                "key.parsed_scope.start" : 398,
+                "key.length" : 299,
+                "key.name" : "init(itemSpacing:itemToSectionFooterSpacing:width:)",
+                "key.namelength" : 157,
+                "key.nameoffset" : 10909,
+                "key.offset" : 10909,
+                "key.parsed_declaration" : "public init(\n    itemSpacing : CGFloat? = nil,\n    itemToSectionFooterSpacing : CGFloat? = nil,\n    width : CustomWidth = .default\n)",
+                "key.parsed_scope.end" : 154,
+                "key.parsed_scope.start" : 145,
                 "key.substructure" : [
 
                 ],
-                "key.typename" : "(ListLayoutContent.ItemInfo.Type) -> (IndexPath, IndexPath, ItemLayout, ItemInsertAndRemoveAnimations, @escaping (Sizing.MeasureInfo) -> CGSize) -> ListLayoutContent.ItemInfo",
-                "key.typeusr" : "$s25delegateProvidedIndexPath04livecD06layout25insertAndRemoveAnimations8measurer10ListableUI17ListLayoutContentC8ItemInfoC10Foundation0cD0V_AmF0qO0VAF0q6InserthiJ0VSo6CGSizeVAF6SizingO07MeasureR0VctcD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC25delegateProvidedIndexPath04livejK06layout25insertAndRemoveAnimations8measurerAE10Foundation0jK0V_AmA0fD0VAA0f6InsertopQ0VSo6CGSizeVAA6SizingO07MeasureG0Vctcfc"
+                "key.typename" : "(TableAppearance.ItemLayout.Type) -> (CGFloat?, CGFloat?, CustomWidth) -> TableAppearance.ItemLayout",
+                "key.typeusr" : "$s11itemSpacing0a15ToSectionFooterB05width10ListableUI15TableAppearanceV10ItemLayoutV12CoreGraphics7CGFloatVSg_AlD11CustomWidthOtcD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV11itemSpacing0g15ToSectionFooterH05widthAE12CoreGraphics7CGFloatVSg_AlA11CustomWidthOtcfc"
               },
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "func layoutAttributes(with indexPath: IndexPath<\/Type>) -> UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
-                "key.bodylength" : 237,
-                "key.bodyoffset" : 12736,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layoutAttributes<\/decl.name>(with<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewLayoutAttributes<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 333,
-                "key.name" : "layoutAttributes(with:)",
-                "key.namelength" : 44,
-                "key.nameoffset" : 12646,
-                "key.offset" : 12641,
-                "key.parsed_declaration" : "func layoutAttributes(with indexPath : IndexPath) -> UICollectionViewLayoutAttributes",
-                "key.parsed_scope.end" : 422,
-                "key.parsed_scope.start" : 414,
-                "key.substructure" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>",
+                "key.attributes" : [
                   {
-                    "key.annotated_decl" : "let attributes: UICollectionViewLayoutAttributes<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> attributes<\/decl.name>: UICollectionViewLayoutAttributes<\/ref.class><\/decl.var.type><\/decl.var.local>",
-                    "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 73,
-                    "key.name" : "attributes",
-                    "key.namelength" : 10,
-                    "key.nameoffset" : 12753,
-                    "key.offset" : 12749,
-                    "key.parsed_declaration" : "let attributes = UICollectionViewLayoutAttributes(forCellWith: indexPath)",
-                    "key.parsed_scope.end" : 416,
-                    "key.parsed_scope.start" : 416,
-                    "key.typename" : "UICollectionViewLayoutAttributes",
-                    "key.typeusr" : "$sSo32UICollectionViewLayoutAttributesCD",
-                    "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC16layoutAttributes4withSo016UICollectionViewdI0C10Foundation9IndexPathV_tF10attributesL_AIvp"
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 11226
                   }
                 ],
-                "key.typename" : "(ListLayoutContent.ItemInfo) -> (IndexPath) -> UICollectionViewLayoutAttributes",
-                "key.typeusr" : "$s4withSo32UICollectionViewLayoutAttributesC10Foundation9IndexPathV_tcD",
-                "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC16layoutAttributes4withSo016UICollectionViewdI0C10Foundation9IndexPathV_tF"
-              }
-            ],
-            "key.typename" : "ListLayoutContent.ItemInfo.Type",
-            "key.typeusr" : "$s10ListableUI17ListLayoutContentC8ItemInfoCmD",
-            "key.usr" : "s:10ListableUI17ListLayoutContentC8ItemInfoC"
-          }
-        ],
-        "key.typename" : "ListLayoutContent.Type",
-        "key.typeusr" : "$s10ListableUI17ListLayoutContentCmD",
-        "key.usr" : "s:10ListableUI17ListLayoutContentC"
-      },
-      {
-        "key.annotated_decl" : "struct CGRect<\/Declaration>",
-        "key.bodylength" : 383,
-        "key.bodyoffset" : 13003,
-        "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator14.2.sdk\/System\/Library\/Frameworks\/CoreGraphics.framework\/Headers\/CGGeometry.h",
-        "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CGRect<\/decl.name><\/decl.struct>",
-        "key.is_system" : true,
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 402,
-        "key.modulename" : "CoreGraphics.CGGeometry",
-        "key.name" : "CGRect",
-        "key.namelength" : 6,
-        "key.nameoffset" : 12995,
-        "key.offset" : 12985,
-        "key.parsed_declaration" : "extension CGRect",
-        "key.parsed_scope.end" : 446,
-        "key.parsed_scope.start" : 427,
-        "key.substructure" : [
-          {
-            "key.annotated_decl" : "static func unioned(from rects: [CGRect<\/Type>]) -> CGRect<\/Type><\/Declaration>",
-            "key.bodylength" : 322,
-            "key.bodyoffset" : 13062,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> unioned<\/decl.name>(from<\/decl.var.parameter.argument_label> rects<\/decl.var.parameter.name>: [CGRect<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> CGRect<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
-            "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 377,
-            "key.name" : "unioned(from:)",
-            "key.namelength" : 30,
-            "key.nameoffset" : 13020,
-            "key.offset" : 13008,
-            "key.parsed_declaration" : "static func unioned(from rects : [CGRect]) -> CGRect",
-            "key.parsed_scope.end" : 445,
-            "key.parsed_scope.start" : 428,
-            "key.substructure" : [
-              {
-                "key.annotated_decl" : "let rects: [CGRect<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rects<\/decl.name>: [CGRect<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 68,
-                "key.name" : "rects",
-                "key.namelength" : 5,
-                "key.nameoffset" : 13084,
-                "key.offset" : 13080,
-                "key.parsed_declaration" : "let rects = rects.filter {\n    $0.isEmpty == false\n}",
-                "key.parsed_scope.end" : 430,
-                "key.parsed_scope.start" : 430,
-                "key.typename" : "[CGRect]",
-                "key.typeusr" : "$sSaySo6CGRectVGD",
-                "key.usr" : "s:So6CGRectV10ListableUIE7unioned4fromABSayABG_tFZ5rectsL0_AFvp"
-              },
-              {
-                "key.annotated_decl" : "var frame: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 17,
-                "key.name" : "frame",
-                "key.namelength" : 5,
-                "key.nameoffset" : 13251,
-                "key.offset" : 13247,
-                "key.parsed_declaration" : "var frame = first",
-                "key.parsed_scope.end" : 438,
-                "key.parsed_scope.start" : 438,
-                "key.typename" : "CGRect",
-                "key.typeusr" : "$sSo6CGRectVD",
-                "key.usr" : "s:So6CGRectV10ListableUIE7unioned4fromABSayABG_tFZ5frameL_ABvp"
-              }
-            ],
-            "key.typename" : "(CGRect.Type) -> ([CGRect]) -> CGRect",
-            "key.typeusr" : "$s4fromSo6CGRectVSayACG_tcD",
-            "key.usr" : "s:So6CGRectV10ListableUIE7unioned4fromABSayABG_tFZ"
-          }
-        ],
-        "key.typename" : "CGRect.Type",
-        "key.typeusr" : "$sSo6CGRectVmD",
-        "key.usr" : "c:@S@CGRect"
-      }
-    ]
-  }
-}, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift" : {
-    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 401,
-    "key.offset" : 0,
-    "key.substructure" : [
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct ListLayoutDefaults<\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 116
-          }
-        ],
-        "key.bodylength" : 249,
-        "key.bodyoffset" : 150,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutDefaults<\/decl.name><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 277,
-        "key.name" : "ListLayoutDefaults",
-        "key.namelength" : 18,
-        "key.nameoffset" : 130,
-        "key.offset" : 123,
-        "key.parsed_declaration" : "public struct ListLayoutDefaults",
-        "key.parsed_scope.end" : 19,
-        "key.parsed_scope.start" : 11,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var itemInsertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 155
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemInsertAndRemoveAnimations<\/decl.name>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 65,
-            "key.name" : "itemInsertAndRemoveAnimations",
-            "key.namelength" : 29,
-            "key.nameoffset" : 166,
-            "key.offset" : 162,
-            "key.parsed_declaration" : "public var itemInsertAndRemoveAnimations : ItemInsertAndRemoveAnimations",
-            "key.parsed_scope.end" : 13,
-            "key.parsed_scope.start" : 13,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "ItemInsertAndRemoveAnimations",
-            "key.typeusr" : "$s10ListableUI29ItemInsertAndRemoveAnimationsVD",
-            "key.usr" : "s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAA04ItemghiJ0Vvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(itemInsertAndRemoveAnimations: ItemInsertAndRemoveAnimations<\/Type>)<\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 237
+                "key.bodylength" : 33,
+                "key.bodyoffset" : 11265,
+                "key.doc.column" : 16,
+                "key.doc.declaration" : "static var defaultValue: Self { get }",
+                "key.doc.discussion" : [
+                  {
+                    "Note" : ""
+                  }
+                ],
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+                "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from ItemLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.line" : 112,
+                "key.doc.name" : "defaultValue",
+                "key.doc.type" : "Other",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+                "key.kind" : "source.lang.swift.decl.var.static",
+                "key.length" : 66,
+                "key.name" : "defaultValue",
+                "key.namelength" : 12,
+                "key.nameoffset" : 11244,
+                "key.offset" : 11233,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ"
+                  }
+                ],
+                "key.parsed_declaration" : "public static var defaultValue : Self",
+                "key.parsed_scope.end" : 158,
+                "key.parsed_scope.start" : 156,
+                "key.typename" : "TableAppearance.ItemLayout",
+                "key.typeusr" : "$s10ListableUI15TableAppearanceV10ItemLayoutVD",
+                "key.usr" : "s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ"
               }
             ],
-            "key.bodylength" : 80,
-            "key.bodyoffset" : 317,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutDefaults.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(itemInsertAndRemoveAnimations<\/decl.var.parameter.argument_label>: ItemInsertAndRemoveAnimations<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 154,
-            "key.name" : "init(itemInsertAndRemoveAnimations:)",
-            "key.namelength" : 67,
-            "key.nameoffset" : 244,
-            "key.offset" : 244,
-            "key.parsed_declaration" : "public init(itemInsertAndRemoveAnimations : ItemInsertAndRemoveAnimations)",
-            "key.parsed_scope.end" : 18,
-            "key.parsed_scope.start" : 15,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(ListLayoutDefaults.Type) -> (ItemInsertAndRemoveAnimations) -> ListLayoutDefaults",
-            "key.typeusr" : "$s29itemInsertAndRemoveAnimations10ListableUI18ListLayoutDefaultsVAB04ItembcdE0V_tcD",
-            "key.usr" : "s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAcA04ItemghiJ0V_tcfc"
-          }
-        ],
-        "key.typename" : "ListLayoutDefaults.Type",
-        "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVmD",
-        "key.usr" : "s:10ListableUI18ListLayoutDefaultsV"
-      }
-    ]
-  }
-}, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift" : {
-    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 3804,
-    "key.offset" : 0,
-    "key.substructure" : [
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct ListLayoutScrollViewProperties<\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 122
-          }
-        ],
-        "key.bodylength" : 3634,
-        "key.bodyoffset" : 168,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutScrollViewProperties<\/decl.name><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 3674,
-        "key.name" : "ListLayoutScrollViewProperties",
-        "key.namelength" : 30,
-        "key.nameoffset" : 136,
-        "key.offset" : 129,
-        "key.parsed_declaration" : "public struct ListLayoutScrollViewProperties",
-        "key.parsed_scope.end" : 99,
-        "key.parsed_scope.start" : 11,
-        "key.substructure" : [
+            "key.typename" : "TableAppearance.ItemLayout.Type",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV10ItemLayoutVmD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV10ItemLayoutV"
+          },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var isPagingEnabled: Bool<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public struct HeaderFooterLayout : Equatable<\/Type>, HeaderFooterLayoutsValue<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 173
+                "key.offset" : 11320
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isPagingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 26,
-            "key.name" : "isPagingEnabled",
-            "key.namelength" : 15,
-            "key.nameoffset" : 184,
-            "key.offset" : 180,
-            "key.parsed_declaration" : "public var isPagingEnabled : Bool",
-            "key.parsed_scope.end" : 13,
-            "key.parsed_scope.start" : 13,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabledSbvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var contentInsetAdjustmentBehavior: ContentInsetAdjustmentBehavior<\/Type><\/Declaration>",
-            "key.attributes" : [
+            "key.bodylength" : 261,
+            "key.bodyoffset" : 11396,
+            "key.elements" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 216
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 9,
+                "key.offset" : 11355
+              },
+              {
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 24,
+                "key.offset" : 11366
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentInsetAdjustmentBehavior<\/decl.name>: ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 67,
-            "key.name" : "contentInsetAdjustmentBehavior",
-            "key.namelength" : 30,
-            "key.nameoffset" : 227,
-            "key.offset" : 223,
-            "key.parsed_declaration" : "public var contentInsetAdjustmentBehavior : ContentInsetAdjustmentBehavior",
-            "key.parsed_scope.end" : 15,
-            "key.parsed_scope.start" : 15,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
-            "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOD",
-            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30contentInsetAdjustmentBehaviorAC07ContentijK0Ovp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var allowsBounceVertical: Bool<\/Type><\/Declaration>",
-            "key.attributes" : [
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayout<\/decl.name> : Equatable<\/ref.protocol>, HeaderFooterLayoutsValue<\/ref.protocol><\/decl.struct>",
+            "key.inheritedtypes" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 300
+                "key.name" : "Equatable"
+              },
+              {
+                "key.name" : "HeaderFooterLayoutsValue"
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsBounceVertical<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 31,
-            "key.name" : "allowsBounceVertical",
-            "key.namelength" : 20,
-            "key.nameoffset" : 311,
-            "key.offset" : 307,
-            "key.parsed_declaration" : "public var allowsBounceVertical : Bool",
-            "key.parsed_scope.end" : 17,
-            "key.parsed_scope.start" : 17,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV20allowsBounceVerticalSbvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var allowsBounceHorizontal: Bool<\/Type><\/Declaration>",
-            "key.attributes" : [
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 331,
+            "key.name" : "HeaderFooterLayout",
+            "key.namelength" : 18,
+            "key.nameoffset" : 11334,
+            "key.offset" : 11327,
+            "key.parsed_declaration" : "public struct HeaderFooterLayout : Equatable, HeaderFooterLayoutsValue",
+            "key.parsed_scope.end" : 175,
+            "key.parsed_scope.start" : 162,
+            "key.substructure" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 343
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 11405
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 23,
+                "key.name" : "width",
+                "key.namelength" : 5,
+                "key.nameoffset" : 11416,
+                "key.offset" : 11412,
+                "key.parsed_declaration" : "public var width : CustomWidth",
+                "key.parsed_scope.end" : 164,
+                "key.parsed_scope.start" : 164,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CustomWidth",
+                "key.typeusr" : "$s10ListableUI11CustomWidthOD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV5widthAA11CustomWidthOvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public init(width: CustomWidth<\/Type> = .default)<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 11457
+                  }
+                ],
+                "key.bodylength" : 40,
+                "key.bodyoffset" : 11524,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 101,
+                "key.name" : "init(width:)",
+                "key.namelength" : 58,
+                "key.nameoffset" : 11464,
+                "key.offset" : 11464,
+                "key.parsed_declaration" : "public init(\n    width : CustomWidth = .default\n)",
+                "key.parsed_scope.end" : 170,
+                "key.parsed_scope.start" : 166,
+                "key.substructure" : [
+
+                ],
+                "key.typename" : "(TableAppearance.HeaderFooterLayout.Type) -> (CustomWidth) -> TableAppearance.HeaderFooterLayout",
+                "key.typeusr" : "$s5width10ListableUI15TableAppearanceV18HeaderFooterLayoutVAB11CustomWidthO_tcD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV5widthAeA11CustomWidthO_tcfc"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 11583
+                  }
+                ],
+                "key.bodylength" : 29,
+                "key.bodyoffset" : 11622,
+                "key.doc.column" : 16,
+                "key.doc.declaration" : "static var defaultValue: Self { get }",
+                "key.doc.discussion" : [
+                  {
+                    "Note" : ""
+                  }
+                ],
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+                "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from HeaderFooterLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.line" : 113,
+                "key.doc.name" : "defaultValue",
+                "key.doc.type" : "Other",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+                "key.kind" : "source.lang.swift.decl.var.static",
+                "key.length" : 62,
+                "key.name" : "defaultValue",
+                "key.namelength" : 12,
+                "key.nameoffset" : 11601,
+                "key.offset" : 11590,
+                "key.overrides" : [
+                  {
+                    "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ"
+                  }
+                ],
+                "key.parsed_declaration" : "public static var defaultValue : Self",
+                "key.parsed_scope.end" : 174,
+                "key.parsed_scope.start" : 172,
+                "key.typename" : "TableAppearance.HeaderFooterLayout",
+                "key.typeusr" : "$s10ListableUI15TableAppearanceV18HeaderFooterLayoutVD",
+                "key.usr" : "s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ"
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsBounceHorizontal<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 33,
-            "key.name" : "allowsBounceHorizontal",
-            "key.namelength" : 22,
-            "key.nameoffset" : 354,
-            "key.offset" : 350,
-            "key.parsed_declaration" : "public var allowsBounceHorizontal : Bool",
-            "key.parsed_scope.end" : 18,
-            "key.parsed_scope.start" : 18,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV22allowsBounceHorizontalSbvp"
+            "key.typename" : "TableAppearance.HeaderFooterLayout.Type",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV18HeaderFooterLayoutVmD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var allowsHorizontalScrollIndicator: Bool<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public struct SectionLayout : Equatable<\/Type>, SectionLayoutsValue<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 393
+                "key.offset" : 11668
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsHorizontalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 42,
-            "key.name" : "allowsHorizontalScrollIndicator",
-            "key.namelength" : 31,
-            "key.nameoffset" : 404,
-            "key.offset" : 400,
-            "key.parsed_declaration" : "public var allowsHorizontalScrollIndicator : Bool",
-            "key.parsed_scope.end" : 20,
-            "key.parsed_scope.start" : 20,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV016allowsHorizontalE9IndicatorSbvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var allowsVerticalScrollIndicator: Bool<\/Type><\/Declaration>",
-            "key.attributes" : [
+            "key.bodylength" : 1687,
+            "key.bodyoffset" : 11734,
+            "key.elements" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 447
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 9,
+                "key.offset" : 11698
+              },
+              {
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 19,
+                "key.offset" : 11709
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> allowsVerticalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 40,
-            "key.name" : "allowsVerticalScrollIndicator",
-            "key.namelength" : 29,
-            "key.nameoffset" : 458,
-            "key.offset" : 454,
-            "key.parsed_declaration" : "public var allowsVerticalScrollIndicator : Bool",
-            "key.parsed_scope.end" : 21,
-            "key.parsed_scope.start" : 21,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV014allowsVerticalE9IndicatorSbvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(isPagingEnabled: Bool<\/Type>, contentInsetAdjustmentBehavior: ListLayoutScrollViewProperties<\/Type>.ContentInsetAdjustmentBehavior<\/Type>, allowsBounceVertical: Bool<\/Type>, allowsBounceHorizontal: Bool<\/Type>, allowsVerticalScrollIndicator: Bool<\/Type>, allowsHorizontalScrollIndicator: Bool<\/Type>)<\/Declaration>",
-            "key.attributes" : [
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayout<\/decl.name> : Equatable<\/ref.protocol>, SectionLayoutsValue<\/ref.protocol><\/decl.struct>",
+            "key.inheritedtypes" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 504
+                "key.name" : "Equatable"
+              },
+              {
+                "key.name" : "SectionLayoutsValue"
               }
             ],
-            "key.bodylength" : 411,
-            "key.bodyoffset" : 827,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isPagingEnabled<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentInsetAdjustmentBehavior<\/decl.var.parameter.argument_label>: ListLayoutScrollViewProperties<\/ref.struct>.ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, allowsBounceVertical<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, allowsBounceHorizontal<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, allowsVerticalScrollIndicator<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, allowsHorizontalScrollIndicator<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 728,
-            "key.name" : "init(isPagingEnabled:contentInsetAdjustmentBehavior:allowsBounceVertical:allowsBounceHorizontal:allowsVerticalScrollIndicator:allowsHorizontalScrollIndicator:)",
-            "key.namelength" : 314,
-            "key.nameoffset" : 511,
-            "key.offset" : 511,
-            "key.parsed_declaration" : "public init(\n    isPagingEnabled: Bool,\n    contentInsetAdjustmentBehavior: ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior,\n    allowsBounceVertical : Bool,\n    allowsBounceHorizontal : Bool,\n    allowsVerticalScrollIndicator : Bool,\n    allowsHorizontalScrollIndicator : Bool\n)",
-            "key.parsed_scope.end" : 39,
-            "key.parsed_scope.start" : 23,
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 1747,
+            "key.name" : "SectionLayout",
+            "key.namelength" : 13,
+            "key.nameoffset" : 11682,
+            "key.offset" : 11675,
+            "key.parsed_declaration" : "public struct SectionLayout : Equatable, SectionLayoutsValue",
+            "key.parsed_scope.end" : 232,
+            "key.parsed_scope.start" : 177,
             "key.substructure" : [
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 11743
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 23,
+                "key.name" : "width",
+                "key.namelength" : 5,
+                "key.nameoffset" : 11754,
+                "key.offset" : 11750,
+                "key.parsed_declaration" : "public var width : CustomWidth",
+                "key.parsed_scope.end" : 179,
+                "key.parsed_scope.start" : 179,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CustomWidth",
+                "key.typeusr" : "$s10ListableUI11CustomWidthOD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var customInterSectionSpacing: CGFloat<\/Type>?<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 11847
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "Overrides the calculated spacing after this section",
+                "key.doc.declaration" : "public var customInterSectionSpacing: CGFloat?",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "customInterSectionSpacing<\/Name>s:10ListableUI15TableAppearanceV13SectionLayoutV011customInterE7Spacing12CoreGraphics7CGFloatVSgvp<\/USR>public var customInterSectionSpacing: CGFloat?<\/Declaration>Overrides the calculated spacing after this section<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 182,
+                "key.doc.name" : "customInterSectionSpacing",
+                "key.doc.type" : "Other",
+                "key.doclength" : 56,
+                "key.docoffset" : 11783,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> customInterSectionSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 40,
+                "key.name" : "customInterSectionSpacing",
+                "key.namelength" : 25,
+                "key.nameoffset" : 11858,
+                "key.offset" : 11854,
+                "key.parsed_declaration" : "public var customInterSectionSpacing : CGFloat?",
+                "key.parsed_scope.end" : 182,
+                "key.parsed_scope.start" : 182,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat?",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV011customInterE7Spacing12CoreGraphics7CGFloatVSgvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var columns: Columns<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 11912
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> columns<\/decl.name>: Columns<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 21,
+                "key.name" : "columns",
+                "key.namelength" : 7,
+                "key.nameoffset" : 11923,
+                "key.offset" : 11919,
+                "key.parsed_declaration" : "public var columns : Columns",
+                "key.parsed_scope.end" : 184,
+                "key.parsed_scope.start" : 184,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "TableAppearance.SectionLayout.Columns",
+                "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7columnsAE7ColumnsVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public init(width: CustomWidth<\/Type> = .default, customInterSectionSpacing: CGFloat<\/Type>? = nil, columns: Columns<\/Type> = .one)<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 11958
+                  }
+                ],
+                "key.bodylength" : 159,
+                "key.bodyoffset" : 12119,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>, customInterSectionSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, columns<\/decl.var.parameter.argument_label>: Columns<\/ref.struct><\/decl.var.parameter.type> = .one<\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 314,
+                "key.name" : "init(width:customInterSectionSpacing:columns:)",
+                "key.namelength" : 152,
+                "key.nameoffset" : 11965,
+                "key.offset" : 11965,
+                "key.parsed_declaration" : "public init(\n    width : CustomWidth = .default,\n    customInterSectionSpacing : CGFloat? = nil,\n    columns : Columns = .one\n)",
+                "key.parsed_scope.end" : 195,
+                "key.parsed_scope.start" : 186,
+                "key.substructure" : [
 
-            ],
-            "key.typename" : "(ListLayoutScrollViewProperties.Type) -> (Bool, ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior, Bool, Bool, Bool, Bool) -> ListLayoutScrollViewProperties",
-            "key.typeusr" : "$s15isPagingEnabled30contentInsetAdjustmentBehavior20allowsBounceVertical0hI10Horizontal0hJ15ScrollIndicator0hklM010ListableUI010ListLayoutL14ViewPropertiesVSb_AI07ContentefG0OS4btcD",
-            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabled30contentInsetAdjustmentBehavior20allowsBounceVertical0oP10Horizontal0oqE9Indicator0oreS0ACSb_AC07ContentlmN0OS4btcfc"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func apply(to view: UIScrollView<\/Type>, behavior: Behavior<\/Type>, direction: LayoutDirection<\/Type>, showsScrollIndicators: Bool<\/Type>)<\/Declaration>",
-            "key.bodylength" : 1908,
-            "key.bodyoffset" : 1407,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> apply<\/decl.name>(to<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, showsScrollIndicators<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 2063,
-            "key.name" : "apply(to:behavior:direction:showsScrollIndicators:)",
-            "key.namelength" : 147,
-            "key.nameoffset" : 1258,
-            "key.offset" : 1253,
-            "key.parsed_declaration" : "func apply(\n    to view : UIScrollView,\n    behavior : Behavior,\n    direction : LayoutDirection,\n    showsScrollIndicators : Bool\n)",
-            "key.parsed_scope.end" : 82,
-            "key.parsed_scope.start" : 41,
-            "key.substructure" : [
+                ],
+                "key.typename" : "(TableAppearance.SectionLayout.Type) -> (CustomWidth, CGFloat?, TableAppearance.SectionLayout.Columns) -> TableAppearance.SectionLayout",
+                "key.typeusr" : "$s5width25customInterSectionSpacing7columns10ListableUI15TableAppearanceV0D6LayoutVAD11CustomWidthO_12CoreGraphics7CGFloatVSgAH7ColumnsVtcD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV5width011customInterE7Spacing7columnsAeA11CustomWidthO_12CoreGraphics7CGFloatVSgAE7ColumnsVtcfc"
+              },
               {
-                "key.annotated_decl" : "let isPagingEnabled: Bool<\/Type><\/Declaration>",
-                "key.doc.column" : 13,
-                "key.doc.comment" : "**Note**: Properties are only set if they are different (hence all the `if` statements below)\nbecause some UIScrollView properties, even when set to the same value, can affect or stop scrolling if it\nis in progress. Hard to tell which across iOS versions, so just always be defensive.",
-                "key.doc.declaration" : "let isPagingEnabled: Bool",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                "key.doc.full_as_xml" : "isPagingEnabled<\/Name>s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF15isPagingEnabledL_Sbvp<\/USR>let isPagingEnabled: Bool<\/Declaration>Note<\/bold>: Properties are only set if they are different (hence all the if<\/codeVoice> statements below) because some UIScrollView properties, even when set to the same value, can affect or stop scrolling if it is in progress. Hard to tell which across iOS versions, so just always be defensive.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 51,
-                "key.doc.name" : "isPagingEnabled",
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public static var defaultValue: `Self` { get }<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 12297
+                  }
+                ],
+                "key.bodylength" : 33,
+                "key.bodyoffset" : 12336,
+                "key.doc.column" : 16,
+                "key.doc.declaration" : "static var defaultValue: Self { get }",
+                "key.doc.discussion" : [
+                  {
+                    "Note" : ""
+                  }
+                ],
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+                "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract>This documentation comment was inherited from SectionLayoutsValue<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.line" : 112,
+                "key.doc.name" : "defaultValue",
                 "key.doc.type" : "Other",
-                "key.doclength" : 313,
-                "key.docoffset" : 1416,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> isPagingEnabled<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 70,
-                "key.name" : "isPagingEnabled",
-                "key.namelength" : 15,
-                "key.nameoffset" : 1750,
-                "key.offset" : 1746,
-                "key.parsed_declaration" : "let isPagingEnabled = self.isPagingEnabled || behavior.isPagingEnabled",
-                "key.parsed_scope.end" : 51,
-                "key.parsed_scope.start" : 51,
-                "key.related_decls" : [
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+                "key.kind" : "source.lang.swift.decl.var.static",
+                "key.length" : 66,
+                "key.name" : "defaultValue",
+                "key.namelength" : 12,
+                "key.nameoffset" : 12315,
+                "key.offset" : 12304,
+                "key.overrides" : [
                   {
-                    "key.annotated_decl" : "isPagingEnabled<\/RelatedName>"
+                    "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ"
+                  }
+                ],
+                "key.parsed_declaration" : "public static var defaultValue : Self",
+                "key.parsed_scope.end" : 199,
+                "key.parsed_scope.start" : 197,
+                "key.typename" : "TableAppearance.SectionLayout",
+                "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutVD",
+                "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public struct TableAppearance<\/Type>.SectionLayout<\/Type>.Columns : Equatable<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 12388
+                  }
+                ],
+                "key.bodylength" : 984,
+                "key.bodyoffset" : 12431,
+                "key.elements" : [
+                  {
+                    "key.kind" : "source.lang.swift.structure.elem.typeref",
+                    "key.length" : 9,
+                    "key.offset" : 12412
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> TableAppearance<\/ref.struct>.SectionLayout<\/ref.struct>.Columns<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
+                "key.inheritedtypes" : [
+                  {
+                    "key.name" : "Equatable"
+                  }
+                ],
+                "key.kind" : "source.lang.swift.decl.struct",
+                "key.length" : 1021,
+                "key.name" : "Columns",
+                "key.namelength" : 7,
+                "key.nameoffset" : 12402,
+                "key.offset" : 12395,
+                "key.parsed_declaration" : "public struct Columns : Equatable",
+                "key.parsed_scope.end" : 231,
+                "key.parsed_scope.start" : 201,
+                "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "public var count: Int<\/Type><\/Declaration>",
+                    "key.attributes" : [
+                      {
+                        "key.attribute" : "source.decl.attribute.public",
+                        "key.length" : 6,
+                        "key.offset" : 12444
+                      }
+                    ],
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                    "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 15,
+                    "key.name" : "count",
+                    "key.namelength" : 5,
+                    "key.nameoffset" : 12455,
+                    "key.offset" : 12451,
+                    "key.parsed_declaration" : "public var count : Int",
+                    "key.parsed_scope.end" : 203,
+                    "key.parsed_scope.start" : 203,
+                    "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                    "key.typename" : "Int",
+                    "key.typeusr" : "$sSiD",
+                    "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5countSivp"
+                  },
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "public var spacing: CGFloat<\/Type><\/Declaration>",
+                    "key.attributes" : [
+                      {
+                        "key.attribute" : "source.decl.attribute.public",
+                        "key.length" : 6,
+                        "key.offset" : 12479
+                      }
+                    ],
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                    "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> spacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 21,
+                    "key.name" : "spacing",
+                    "key.namelength" : 7,
+                    "key.nameoffset" : 12490,
+                    "key.offset" : 12486,
+                    "key.parsed_declaration" : "public var spacing : CGFloat",
+                    "key.parsed_scope.end" : 204,
+                    "key.parsed_scope.start" : 204,
+                    "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                    "key.typename" : "CGFloat",
+                    "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                    "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV7spacing12CoreGraphics7CGFloatVvp"
+                  },
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "public static var one: Columns<\/Type> { get }<\/Declaration>",
+                    "key.attributes" : [
+                      {
+                        "key.attribute" : "source.decl.attribute.public",
+                        "key.length" : 6,
+                        "key.offset" : 12533
+                      }
+                    ],
+                    "key.bodylength" : 68,
+                    "key.bodyoffset" : 12566,
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                    "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> one<\/decl.name>: Columns<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+                    "key.kind" : "source.lang.swift.decl.var.static",
+                    "key.length" : 95,
+                    "key.name" : "one",
+                    "key.namelength" : 3,
+                    "key.nameoffset" : 12551,
+                    "key.offset" : 12540,
+                    "key.parsed_declaration" : "public static var one : Columns",
+                    "key.parsed_scope.end" : 208,
+                    "key.parsed_scope.start" : 206,
+                    "key.typename" : "TableAppearance.SectionLayout.Columns",
+                    "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsVD",
+                    "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV3oneAGvpZ"
+                  },
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "public init(count: Int<\/Type> = 1, spacing: CGFloat<\/Type> = 0.0)<\/Declaration>",
+                    "key.attributes" : [
+                      {
+                        "key.attribute" : "source.decl.attribute.public",
+                        "key.length" : 6,
+                        "key.offset" : 12661
+                      }
+                    ],
+                    "key.bodylength" : 284,
+                    "key.bodyoffset" : 12728,
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                    "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(count<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type> = 1<\/decl.var.parameter>, spacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
+                    "key.kind" : "source.lang.swift.decl.function.method.instance",
+                    "key.length" : 345,
+                    "key.name" : "init(count:spacing:)",
+                    "key.namelength" : 46,
+                    "key.nameoffset" : 12668,
+                    "key.offset" : 12668,
+                    "key.parsed_declaration" : "public init(count : Int = 1, spacing : CGFloat = 0.0)",
+                    "key.parsed_scope.end" : 217,
+                    "key.parsed_scope.start" : 210,
+                    "key.substructure" : [
+
+                    ],
+                    "key.typename" : "(TableAppearance.SectionLayout.Columns.Type) -> (Int, CGFloat) -> TableAppearance.SectionLayout.Columns",
+                    "key.typeusr" : "$s5count7spacing10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsVSi_12CoreGraphics7CGFloatVtcD",
+                    "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5count7spacingAGSi_12CoreGraphics7CGFloatVtcfc"
+                  },
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "func group<Value>(values: [Value<\/Type>]) -> [[Value<\/Type>]]<\/Declaration>",
+                    "key.bodylength" : 304,
+                    "key.bodyoffset" : 13101,
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                    "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> group<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(values<\/decl.var.parameter.argument_label>: [Value<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> [[Value<\/ref.generic_type_param>]]<\/decl.function.returntype><\/decl.function.method.instance>",
+                    "key.kind" : "source.lang.swift.decl.function.method.instance",
+                    "key.length" : 367,
+                    "key.name" : "group(values:)",
+                    "key.namelength" : 30,
+                    "key.nameoffset" : 13044,
+                    "key.offset" : 13039,
+                    "key.parsed_declaration" : "func group(values : [Value]) -> [[Value]]",
+                    "key.parsed_scope.end" : 230,
+                    "key.parsed_scope.start" : 219,
+                    "key.substructure" : [
+                      {
+                        "key.annotated_decl" : "Value<\/Declaration>",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                        "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
+                        "key.kind" : "source.lang.swift.decl.generic_type_param",
+                        "key.length" : 5,
+                        "key.name" : "Value",
+                        "key.namelength" : 5,
+                        "key.nameoffset" : 13050,
+                        "key.offset" : 13050,
+                        "key.parsed_declaration" : "func groupvar values: [Value]<\/Declaration>",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                        "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> values<\/decl.name>: [Value]<\/decl.var.type><\/decl.var.local>",
+                        "key.kind" : "source.lang.swift.decl.var.local",
+                        "key.length" : 19,
+                        "key.name" : "values",
+                        "key.namelength" : 6,
+                        "key.nameoffset" : 13122,
+                        "key.offset" : 13118,
+                        "key.parsed_declaration" : "var values = values",
+                        "key.parsed_scope.end" : 221,
+                        "key.parsed_scope.start" : 221,
+                        "key.typename" : "[Value]",
+                        "key.typeusr" : "$sSayxGD",
+                        "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5group6valuesSaySayxGGAJ_tlFAIL0_AJvp"
+                      },
+                      {
+                        "key.annotated_decl" : "var grouped: [[Value<\/Type>]]<\/Declaration>",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                        "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> grouped<\/decl.name>: [[Value<\/ref.generic_type_param>]]<\/decl.var.type><\/decl.var.local>",
+                        "key.kind" : "source.lang.swift.decl.var.local",
+                        "key.length" : 28,
+                        "key.name" : "grouped",
+                        "key.namelength" : 7,
+                        "key.nameoffset" : 13175,
+                        "key.offset" : 13171,
+                        "key.parsed_declaration" : "var grouped : [[Value]] = []",
+                        "key.parsed_scope.end" : 223,
+                        "key.parsed_scope.start" : 223,
+                        "key.typename" : "[[Value]]",
+                        "key.typeusr" : "$sSaySayxGGD",
+                        "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5group6valuesSaySayxGGAJ_tlF7groupedL_AKvp"
+                      }
+                    ],
+                    "key.typename" : " (TableAppearance.SectionLayout.Columns) -> ([Value]) -> [[Value]]",
+                    "key.typeusr" : "$s6valuesSaySayxGGAB_tcluD",
+                    "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5group6valuesSaySayxGGAJ_tlF"
                   }
                 ],
-                "key.typename" : "Bool",
-                "key.typeusr" : "$sSbD",
-                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF15isPagingEnabledL_Sbvp"
-              },
-              {
-                "key.annotated_decl" : "let alwaysBounceVertical: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> alwaysBounceVertical<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 113,
-                "key.name" : "alwaysBounceVertical",
-                "key.namelength" : 20,
-                "key.nameoffset" : 2202,
-                "key.offset" : 2198,
-                "key.parsed_declaration" : "let alwaysBounceVertical = self.allowsBounceVertical && behavior.underflow.alwaysBounce && direction == .vertical",
-                "key.parsed_scope.end" : 61,
-                "key.parsed_scope.start" : 61,
-                "key.typename" : "Bool",
-                "key.typeusr" : "$sSbD",
-                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF20alwaysBounceVerticalL_Sbvp"
-              },
-              {
-                "key.annotated_decl" : "let alwaysBounceHorizontal: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> alwaysBounceHorizontal<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 119,
-                "key.name" : "alwaysBounceHorizontal",
-                "key.namelength" : 22,
-                "key.nameoffset" : 2324,
-                "key.offset" : 2320,
-                "key.parsed_declaration" : "let alwaysBounceHorizontal = self.allowsBounceHorizontal && behavior.underflow.alwaysBounce && direction == .horizontal",
-                "key.parsed_scope.end" : 62,
-                "key.parsed_scope.start" : 62,
-                "key.typename" : "Bool",
-                "key.typeusr" : "$sSbD",
-                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF22alwaysBounceHorizontalL_Sbvp"
-              },
-              {
-                "key.annotated_decl" : "let showsVerticalScrollIndicator: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> showsVerticalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 94,
-                "key.name" : "showsVerticalScrollIndicator",
-                "key.namelength" : 28,
-                "key.nameoffset" : 2755,
-                "key.offset" : 2751,
-                "key.parsed_declaration" : "let showsVerticalScrollIndicator = self.allowsVerticalScrollIndicator && showsScrollIndicators",
-                "key.parsed_scope.end" : 72,
-                "key.parsed_scope.start" : 72,
-                "key.typename" : "Bool",
-                "key.typeusr" : "$sSbD",
-                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF0l8VerticalE9IndicatorL_Sbvp"
-              },
-              {
-                "key.annotated_decl" : "let showsHorizontalScrollIndicator: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> showsHorizontalScrollIndicator<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
-                "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 98,
-                "key.name" : "showsHorizontalScrollIndicator",
-                "key.namelength" : 30,
-                "key.nameoffset" : 2858,
-                "key.offset" : 2854,
-                "key.parsed_declaration" : "let showsHorizontalScrollIndicator = self.allowsHorizontalScrollIndicator && showsScrollIndicators",
-                "key.parsed_scope.end" : 73,
-                "key.parsed_scope.start" : 73,
-                "key.typename" : "Bool",
-                "key.typeusr" : "$sSbD",
-                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF0l10HorizontalE9IndicatorL_Sbvp"
+                "key.typename" : "TableAppearance.SectionLayout.Columns.Type",
+                "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsVmD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV"
               }
             ],
-            "key.typename" : "(ListLayoutScrollViewProperties) -> (UIScrollView, Behavior, LayoutDirection, Bool) -> ()",
-            "key.typeusr" : "$s2to8behavior9direction21showsScrollIndicatorsySo12UIScrollViewC_10ListableUI8BehaviorVAG15LayoutDirectionOSbtcD",
-            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV5apply2to8behavior9direction05showsE10IndicatorsySo08UIScrollF0C_AA8BehaviorVAA0D9DirectionOSbtF"
+            "key.typename" : "TableAppearance.SectionLayout.Type",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutVmD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV13SectionLayoutV"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public enum ListLayoutScrollViewProperties<\/Type>.ContentInsetAdjustmentBehavior : Equatable<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public struct Sizing : Equatable<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 3326
+                "key.offset" : 13469
               }
             ],
-            "key.bodylength" : 418,
-            "key.bodyoffset" : 3382,
+            "key.bodylength" : 1970,
+            "key.bodyoffset" : 13507,
+            "key.doc.column" : 19,
+            "key.doc.comment" : "Sizing options for the list.",
+            "key.doc.declaration" : "public struct Sizing : Equatable",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI15TableAppearanceV6SizingV<\/USR>public struct Sizing : Equatable<\/Declaration>Sizing options for the list.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.line" : 235,
+            "key.doc.name" : "Sizing",
+            "key.doc.type" : "Class",
+            "key.doclength" : 33,
+            "key.docoffset" : 13432,
             "key.elements" : [
               {
                 "key.kind" : "source.lang.swift.structure.elem.typeref",
                 "key.length" : 9,
-                "key.offset" : 3371
+                "key.offset" : 13492
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListLayoutScrollViewProperties<\/ref.struct>.ContentInsetAdjustmentBehavior<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Sizing<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
                 "key.name" : "Equatable"
               }
             ],
-            "key.kind" : "source.lang.swift.decl.enum",
-            "key.length" : 468,
-            "key.name" : "ContentInsetAdjustmentBehavior",
-            "key.namelength" : 30,
-            "key.nameoffset" : 3338,
-            "key.offset" : 3333,
-            "key.parsed_declaration" : "public enum ContentInsetAdjustmentBehavior : Equatable",
-            "key.parsed_scope.end" : 98,
-            "key.parsed_scope.start" : 84,
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 2002,
+            "key.name" : "Sizing",
+            "key.namelength" : 6,
+            "key.nameoffset" : 13483,
+            "key.offset" : 13476,
+            "key.parsed_declaration" : "public struct Sizing : Equatable",
+            "key.parsed_scope.end" : 282,
+            "key.parsed_scope.start" : 235,
             "key.substructure" : [
               {
-                "key.kind" : "source.lang.swift.decl.enumcase",
-                "key.length" : 14,
-                "key.namelength" : 0,
-                "key.nameoffset" : 0,
-                "key.offset" : 3391,
-                "key.substructure" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var itemHeight: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
                   {
-                    "key.accessibility" : "source.lang.swift.accessibility.public",
-                    "key.annotated_decl" : "case automatic<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> automatic<\/decl.name><\/decl.enumelement>",
-                    "key.kind" : "source.lang.swift.decl.enumelement",
-                    "key.length" : 9,
-                    "key.name" : "automatic",
-                    "key.namelength" : 9,
-                    "key.nameoffset" : 3396,
-                    "key.offset" : 3396,
-                    "key.parsed_declaration" : "case automatic",
-                    "key.parsed_scope.end" : 85,
-                    "key.parsed_scope.start" : 85,
-                    "key.typename" : "(ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type) -> ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
-                    "key.typeusr" : "$sy10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOAEmcD",
-                    "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO9automaticyA2EmF"
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 13568
                   }
-                ]
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The default height for items in a list.",
+                "key.doc.declaration" : "public var itemHeight: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "itemHeight<\/Name>s:10ListableUI15TableAppearanceV6SizingV10itemHeight12CoreGraphics7CGFloatVvp<\/USR>public var itemHeight: CGFloat<\/Declaration>The default height for items in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 238,
+                "key.doc.name" : "itemHeight",
+                "key.doc.type" : "Other",
+                "key.doclength" : 44,
+                "key.docoffset" : 13516,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 24,
+                "key.name" : "itemHeight",
+                "key.namelength" : 10,
+                "key.nameoffset" : 13579,
+                "key.offset" : 13575,
+                "key.parsed_declaration" : "public var itemHeight : CGFloat",
+                "key.parsed_scope.end" : 238,
+                "key.parsed_scope.start" : 238,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV10itemHeight12CoreGraphics7CGFloatVvp"
               },
               {
-                "key.kind" : "source.lang.swift.decl.enumcase",
-                "key.length" : 19,
-                "key.namelength" : 0,
-                "key.nameoffset" : 0,
-                "key.offset" : 3414,
-                "key.substructure" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var sectionHeaderHeight: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
                   {
-                    "key.accessibility" : "source.lang.swift.accessibility.public",
-                    "key.annotated_decl" : "case scrollableAxes<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrollableAxes<\/decl.name><\/decl.enumelement>",
-                    "key.kind" : "source.lang.swift.decl.enumelement",
-                    "key.length" : 14,
-                    "key.name" : "scrollableAxes",
-                    "key.namelength" : 14,
-                    "key.nameoffset" : 3419,
-                    "key.offset" : 3419,
-                    "key.parsed_declaration" : "case scrollableAxes",
-                    "key.parsed_scope.end" : 86,
-                    "key.parsed_scope.start" : 86,
-                    "key.typename" : "(ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type) -> ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
-                    "key.typeusr" : "$sy10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOAEmcD",
-                    "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2EmF"
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 13679
                   }
-                ]
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The default height for section headers in a list.",
+                "key.doc.declaration" : "public var sectionHeaderHeight: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "sectionHeaderHeight<\/Name>s:10ListableUI15TableAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp<\/USR>public var sectionHeaderHeight: CGFloat<\/Declaration>The default height for section headers in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 241,
+                "key.doc.name" : "sectionHeaderHeight",
+                "key.doc.type" : "Other",
+                "key.doclength" : 54,
+                "key.docoffset" : 13617,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionHeaderHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 33,
+                "key.name" : "sectionHeaderHeight",
+                "key.namelength" : 19,
+                "key.nameoffset" : 13690,
+                "key.offset" : 13686,
+                "key.parsed_declaration" : "public var sectionHeaderHeight : CGFloat",
+                "key.parsed_scope.end" : 241,
+                "key.parsed_scope.start" : 241,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp"
               },
               {
-                "key.kind" : "source.lang.swift.decl.enumcase",
-                "key.length" : 10,
-                "key.namelength" : 0,
-                "key.nameoffset" : 0,
-                "key.offset" : 3442,
-                "key.substructure" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var sectionFooterHeight: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
                   {
-                    "key.accessibility" : "source.lang.swift.accessibility.public",
-                    "key.annotated_decl" : "case never<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> never<\/decl.name><\/decl.enumelement>",
-                    "key.kind" : "source.lang.swift.decl.enumelement",
-                    "key.length" : 5,
-                    "key.name" : "never",
-                    "key.namelength" : 5,
-                    "key.nameoffset" : 3447,
-                    "key.offset" : 3447,
-                    "key.parsed_declaration" : "case never",
-                    "key.parsed_scope.end" : 87,
-                    "key.parsed_scope.start" : 87,
-                    "key.typename" : "(ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type) -> ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
-                    "key.typeusr" : "$sy10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOAEmcD",
-                    "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO5neveryA2EmF"
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 13789
                   }
-                ]
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The default height for section footer in a list.",
+                "key.doc.declaration" : "public var sectionFooterHeight: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "sectionFooterHeight<\/Name>s:10ListableUI15TableAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp<\/USR>public var sectionFooterHeight: CGFloat<\/Declaration>The default height for section footer in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 243,
+                "key.doc.name" : "sectionFooterHeight",
+                "key.doc.type" : "Other",
+                "key.doclength" : 53,
+                "key.docoffset" : 13728,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionFooterHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 33,
+                "key.name" : "sectionFooterHeight",
+                "key.namelength" : 19,
+                "key.nameoffset" : 13800,
+                "key.offset" : 13796,
+                "key.parsed_declaration" : "public var sectionFooterHeight : CGFloat",
+                "key.parsed_scope.end" : 243,
+                "key.parsed_scope.start" : 243,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp"
               },
               {
-                "key.kind" : "source.lang.swift.decl.enumcase",
-                "key.length" : 11,
-                "key.namelength" : 0,
-                "key.nameoffset" : 0,
-                "key.offset" : 3461,
-                "key.substructure" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var listHeaderHeight: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
                   {
-                    "key.accessibility" : "source.lang.swift.accessibility.public",
-                    "key.annotated_decl" : "case always<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> always<\/decl.name><\/decl.enumelement>",
-                    "key.kind" : "source.lang.swift.decl.enumelement",
+                    "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.name" : "always",
-                    "key.namelength" : 6,
-                    "key.nameoffset" : 3466,
-                    "key.offset" : 3466,
-                    "key.parsed_declaration" : "case always",
-                    "key.parsed_scope.end" : 88,
-                    "key.parsed_scope.start" : 88,
-                    "key.typename" : "(ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type) -> ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior",
-                    "key.typeusr" : "$sy10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOAEmcD",
-                    "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO6alwaysyA2EmF"
+                    "key.offset" : 13901
                   }
-                ]
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The default height for the list's header.",
+                "key.doc.declaration" : "public var listHeaderHeight: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "listHeaderHeight<\/Name>s:10ListableUI15TableAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp<\/USR>public var listHeaderHeight: CGFloat<\/Declaration>The default height for the list’s header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 246,
+                "key.doc.name" : "listHeaderHeight",
+                "key.doc.type" : "Other",
+                "key.doclength" : 46,
+                "key.docoffset" : 13847,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listHeaderHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 30,
+                "key.name" : "listHeaderHeight",
+                "key.namelength" : 16,
+                "key.nameoffset" : 13912,
+                "key.offset" : 13908,
+                "key.parsed_declaration" : "public var listHeaderHeight : CGFloat",
+                "key.parsed_scope.end" : 246,
+                "key.parsed_scope.start" : 246,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp"
               },
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "var toUIScrollViewValue: UIScrollView<\/Type>.ContentInsetAdjustmentBehavior<\/Type> { get }<\/Declaration>",
-                "key.bodylength" : 233,
-                "key.bodyoffset" : 3561,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutScrollViewProperties.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toUIScrollViewValue<\/decl.name>: UIScrollView<\/ref.class>.ContentInsetAdjustmentBehavior<\/ref.enum><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var listFooterHeight: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 14001
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The default height for the list's footer.",
+                "key.doc.declaration" : "public var listFooterHeight: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "listFooterHeight<\/Name>s:10ListableUI15TableAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp<\/USR>public var listFooterHeight: CGFloat<\/Declaration>The default height for the list’s footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 248,
+                "key.doc.name" : "listFooterHeight",
+                "key.doc.type" : "Other",
+                "key.doclength" : 46,
+                "key.docoffset" : 13947,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listFooterHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 305,
-                "key.name" : "toUIScrollViewValue",
-                "key.namelength" : 19,
-                "key.nameoffset" : 3494,
-                "key.offset" : 3490,
-                "key.parsed_declaration" : "var toUIScrollViewValue : UIScrollView.ContentInsetAdjustmentBehavior",
-                "key.parsed_scope.end" : 97,
-                "key.parsed_scope.start" : 90,
-                "key.typename" : "UIScrollView.ContentInsetAdjustmentBehavior",
-                "key.typeusr" : "$sSo42UIScrollViewContentInsetAdjustmentBehaviorVD",
-                "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO010toUIScrollF5ValueSo0mfhijK0Vvp"
-              }
-            ],
-            "key.typename" : "ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.Type",
-            "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorOmD",
-            "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO"
-          }
-        ],
-        "key.typename" : "ListLayoutScrollViewProperties.Type",
-        "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVmD",
-        "key.usr" : "s:10ListableUI30ListLayoutScrollViewPropertiesV"
-      }
-    ]
-  }
-}, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift" : {
-    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 1261,
-    "key.offset" : 0,
-    "key.substructure" : [
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct ListLayoutPoint : Hashable<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 113
-          }
-        ],
-        "key.bodylength" : 497,
-        "key.bodyoffset" : 155,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 8,
-            "key.offset" : 145
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutPoint<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
-        "key.inheritedtypes" : [
-          {
-            "key.name" : "Hashable"
-          }
-        ],
-        "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 533,
-        "key.name" : "ListLayoutPoint",
-        "key.namelength" : 15,
-        "key.nameoffset" : 127,
-        "key.offset" : 120,
-        "key.parsed_declaration" : "public struct ListLayoutPoint : Hashable",
-        "key.parsed_scope.end" : 32,
-        "key.parsed_scope.start" : 11,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var x: CGFloat<\/Type><\/Declaration>",
-            "key.attributes" : [
+                "key.length" : 30,
+                "key.name" : "listFooterHeight",
+                "key.namelength" : 16,
+                "key.nameoffset" : 14012,
+                "key.offset" : 14008,
+                "key.parsed_declaration" : "public var listFooterHeight : CGFloat",
+                "key.parsed_scope.end" : 248,
+                "key.parsed_scope.start" : 248,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp"
+              },
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 161
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> x<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 15,
-            "key.name" : "x",
-            "key.namelength" : 1,
-            "key.nameoffset" : 172,
-            "key.offset" : 168,
-            "key.parsed_declaration" : "public var x : CGFloat",
-            "key.parsed_scope.end" : 13,
-            "key.parsed_scope.start" : 13,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "CGFloat",
-            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-            "key.usr" : "s:10ListableUI15ListLayoutPointV1x12CoreGraphics7CGFloatVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var y: CGFloat<\/Type><\/Declaration>",
-            "key.attributes" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var overscrollFooterHeight: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 14112
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The default height for the list's overscroll footer.",
+                "key.doc.declaration" : "public var overscrollFooterHeight: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "overscrollFooterHeight<\/Name>s:10ListableUI15TableAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp<\/USR>public var overscrollFooterHeight: CGFloat<\/Declaration>The default height for the list’s overscroll footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 250,
+                "key.doc.name" : "overscrollFooterHeight",
+                "key.doc.type" : "Other",
+                "key.doclength" : 57,
+                "key.docoffset" : 14047,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> overscrollFooterHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 36,
+                "key.name" : "overscrollFooterHeight",
+                "key.namelength" : 22,
+                "key.nameoffset" : 14123,
+                "key.offset" : 14119,
+                "key.parsed_declaration" : "public var overscrollFooterHeight : CGFloat",
+                "key.parsed_scope.end" : 250,
+                "key.parsed_scope.start" : 250,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp"
+              },
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 188
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var itemPositionGroupingHeight: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 14436
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "When providing the `ItemPosition` for items in a list, specifies the max spacing\nfor items to be considered in the same group. For example, if this value is 1, and\nitems are spaced 2pts apart, the items will be in a new group.",
+                "key.doc.declaration" : "public var itemPositionGroupingHeight: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "itemPositionGroupingHeight<\/Name>s:10ListableUI15TableAppearanceV6SizingV26itemPositionGroupingHeight12CoreGraphics7CGFloatVvp<\/USR>public var itemPositionGroupingHeight: CGFloat<\/Declaration>When providing the ItemPosition<\/codeVoice> for items in a list, specifies the max spacing for items to be considered in the same group. For example, if this value is 1, and items are spaced 2pts apart, the items will be in a new group.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 255,
+                "key.doc.name" : "itemPositionGroupingHeight",
+                "key.doc.type" : "Other",
+                "key.doclength" : 255,
+                "key.docoffset" : 14173,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemPositionGroupingHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 40,
+                "key.name" : "itemPositionGroupingHeight",
+                "key.namelength" : 26,
+                "key.nameoffset" : 14447,
+                "key.offset" : 14443,
+                "key.parsed_declaration" : "public var itemPositionGroupingHeight : CGFloat",
+                "key.parsed_scope.end" : 255,
+                "key.parsed_scope.start" : 255,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV26itemPositionGroupingHeight12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public init(itemHeight: CGFloat<\/Type> = 50.0, sectionHeaderHeight: CGFloat<\/Type> = 60.0, sectionFooterHeight: CGFloat<\/Type> = 40.0, listHeaderHeight: CGFloat<\/Type> = 60.0, listFooterHeight: CGFloat<\/Type> = 60.0, overscrollFooterHeight: CGFloat<\/Type> = 60.0, itemPositionGroupingHeight: CGFloat<\/Type> = 0.0)<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 14505
+                  }
+                ],
+                "key.bodylength" : 412,
+                "key.bodyoffset" : 14880,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(itemHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 50.0<\/decl.var.parameter>, sectionHeaderHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, sectionFooterHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 40.0<\/decl.var.parameter>, listHeaderHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, listFooterHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, overscrollFooterHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 60.0<\/decl.var.parameter>, itemPositionGroupingHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 781,
+                "key.name" : "init(itemHeight:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:itemPositionGroupingHeight:)",
+                "key.namelength" : 358,
+                "key.nameoffset" : 14512,
+                "key.offset" : 14512,
+                "key.parsed_declaration" : "public init(\n    itemHeight : CGFloat = 50.0,\n    sectionHeaderHeight : CGFloat = 60.0,\n    sectionFooterHeight : CGFloat = 40.0,\n    listHeaderHeight : CGFloat = 60.0,\n    listFooterHeight : CGFloat = 60.0,\n    overscrollFooterHeight : CGFloat = 60.0,\n    itemPositionGroupingHeight : CGFloat = 0.0\n)",
+                "key.parsed_scope.end" : 274,
+                "key.parsed_scope.start" : 257,
+                "key.substructure" : [
+
+                ],
+                "key.typename" : "(TableAppearance.Sizing.Type) -> (CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat) -> TableAppearance.Sizing",
+                "key.typeusr" : "$s10itemHeight013sectionHeaderB00c6FooterB004listdB00feB0010overscrolleB00a16PositionGroupingB010ListableUI15TableAppearanceV6SizingV12CoreGraphics7CGFloatV_A6OtcD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV10itemHeight013sectionHeaderG00h6FooterG004listiG00kjG0010overscrolljG00f16PositionGroupingG0AE12CoreGraphics7CGFloatV_A6Otcfc"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public mutating func set(with block: (inout Sizing<\/Type>) -> ())<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.mutating",
+                    "key.length" : 8,
+                    "key.offset" : 15318
+                  },
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 15311
+                  }
+                ],
+                "key.bodylength" : 92,
+                "key.bodyoffset" : 15379,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(with<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Sizing<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 145,
+                "key.name" : "set(with:)",
+                "key.namelength" : 37,
+                "key.nameoffset" : 15332,
+                "key.offset" : 15327,
+                "key.parsed_declaration" : "public mutating func set(with block: (inout Sizing) -> ())",
+                "key.parsed_scope.end" : 281,
+                "key.parsed_scope.start" : 276,
+                "key.substructure" : [
+                  {
+                    "key.annotated_decl" : "var edited: TableAppearance<\/Type>.Sizing<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> edited<\/decl.name>: TableAppearance<\/ref.struct>.Sizing<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 17,
+                    "key.name" : "edited",
+                    "key.namelength" : 6,
+                    "key.nameoffset" : 15396,
+                    "key.offset" : 15392,
+                    "key.parsed_declaration" : "var edited = self",
+                    "key.parsed_scope.end" : 278,
+                    "key.parsed_scope.start" : 278,
+                    "key.typename" : "TableAppearance.Sizing",
+                    "key.typeusr" : "$s10ListableUI15TableAppearanceV6SizingVD",
+                    "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV3set4withyyAEzXE_tF6editedL_AEvp"
+                  }
+                ],
+                "key.typename" : "(inout TableAppearance.Sizing) -> ((inout TableAppearance.Sizing) -> ()) -> ()",
+                "key.typeusr" : "$s4withyy10ListableUI15TableAppearanceV6SizingVzXE_tcD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV3set4withyyAEzXE_tF"
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> y<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 15,
-            "key.name" : "y",
-            "key.namelength" : 1,
-            "key.nameoffset" : 199,
-            "key.offset" : 195,
-            "key.parsed_declaration" : "public var y : CGFloat",
-            "key.parsed_scope.end" : 14,
-            "key.parsed_scope.start" : 14,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "CGFloat",
-            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-            "key.usr" : "s:10ListableUI15ListLayoutPointV1y12CoreGraphics7CGFloatVvp"
+            "key.typename" : "TableAppearance.Sizing.Type",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV6SizingVmD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV6SizingV"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var rotates: Bool<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public struct Layout : Equatable<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 220
+                "key.offset" : 15530
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rotates<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 18,
-            "key.name" : "rotates",
-            "key.namelength" : 7,
-            "key.nameoffset" : 231,
-            "key.offset" : 227,
-            "key.parsed_declaration" : "public var rotates : Bool",
-            "key.parsed_scope.end" : 16,
-            "key.parsed_scope.start" : 16,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI15ListLayoutPointV7rotatesSbvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(x: CGFloat<\/Type>, y: CGFloat<\/Type>, rotates: Bool<\/Type>)<\/Declaration>",
-            "key.attributes" : [
+            "key.bodylength" : 3263,
+            "key.bodyoffset" : 15568,
+            "key.doc.column" : 19,
+            "key.doc.comment" : "Layout options for the list.",
+            "key.doc.declaration" : "public struct Layout : Equatable",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.doc.full_as_xml" : "Layout<\/Name>s:10ListableUI15TableAppearanceV6LayoutV<\/USR>public struct Layout : Equatable<\/Declaration>Layout options for the list.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.line" : 286,
+            "key.doc.name" : "Layout",
+            "key.doc.type" : "Class",
+            "key.doclength" : 33,
+            "key.docoffset" : 15493,
+            "key.elements" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 255
+                "key.kind" : "source.lang.swift.structure.elem.typeref",
+                "key.length" : 9,
+                "key.offset" : 15553
               }
             ],
-            "key.bodylength" : 74,
-            "key.bodyoffset" : 311,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(x<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, y<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rotates<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 124,
-            "key.name" : "init(x:y:rotates:)",
-            "key.namelength" : 43,
-            "key.nameoffset" : 262,
-            "key.offset" : 262,
-            "key.parsed_declaration" : "public init(x: CGFloat, y: CGFloat, rotates: Bool)",
-            "key.parsed_scope.end" : 23,
-            "key.parsed_scope.start" : 18,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(ListLayoutPoint.Type) -> (CGFloat, CGFloat, Bool) -> ListLayoutPoint",
-            "key.typeusr" : "$s1x1y7rotates10ListableUI15ListLayoutPointV12CoreGraphics7CGFloatV_AISbtcD",
-            "key.usr" : "s:10ListableUI15ListLayoutPointV1x1y7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public func CGPointValue(for direction: LayoutDirection<\/Type>) -> CGPoint<\/Type><\/Declaration>",
-            "key.attributes" : [
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Layout<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
+            "key.inheritedtypes" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 396
+                "key.name" : "Equatable"
               }
             ],
-            "key.bodylength" : 184,
-            "key.bodyoffset" : 466,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> CGPointValue<\/decl.name>(for<\/decl.var.parameter.argument_label> direction<\/decl.var.parameter.name>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGPoint<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 248,
-            "key.name" : "CGPointValue(for:)",
-            "key.namelength" : 45,
-            "key.nameoffset" : 408,
-            "key.offset" : 403,
-            "key.parsed_declaration" : "public func CGPointValue(for direction : LayoutDirection) -> CGPoint",
-            "key.parsed_scope.end" : 31,
-            "key.parsed_scope.start" : 25,
+            "key.kind" : "source.lang.swift.decl.struct",
+            "key.length" : 3295,
+            "key.name" : "Layout",
+            "key.namelength" : 6,
+            "key.nameoffset" : 15544,
+            "key.offset" : 15537,
+            "key.parsed_declaration" : "public struct Layout : Equatable",
+            "key.parsed_scope.end" : 362,
+            "key.parsed_scope.start" : 286,
             "key.substructure" : [
-
-            ],
-            "key.typename" : "(ListLayoutPoint) -> (LayoutDirection) -> CGPoint",
-            "key.typeusr" : "$s3forSo7CGPointV10ListableUI15LayoutDirectionO_tcD",
-            "key.usr" : "s:10ListableUI15ListLayoutPointV12CGPointValue3forSo0F0VAA0D9DirectionO_tF"
-          }
-        ],
-        "key.typename" : "ListLayoutPoint.Type",
-        "key.typeusr" : "$s10ListableUI15ListLayoutPointVmD",
-        "key.usr" : "s:10ListableUI15ListLayoutPointV"
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct ListLayoutSize : Hashable<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 656
-          }
-        ],
-        "key.bodylength" : 562,
-        "key.bodyoffset" : 697,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 8,
-            "key.offset" : 687
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListLayoutSize<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
-        "key.inheritedtypes" : [
-          {
-            "key.name" : "Hashable"
-          }
-        ],
-        "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 597,
-        "key.name" : "ListLayoutSize",
-        "key.namelength" : 14,
-        "key.nameoffset" : 670,
-        "key.offset" : 663,
-        "key.parsed_declaration" : "public struct ListLayoutSize : Hashable",
-        "key.parsed_scope.end" : 55,
-        "key.parsed_scope.start" : 35,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var width: CGFloat<\/Type><\/Declaration>",
-            "key.attributes" : [
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 703
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 19,
-            "key.name" : "width",
-            "key.namelength" : 5,
-            "key.nameoffset" : 714,
-            "key.offset" : 710,
-            "key.parsed_declaration" : "public var width : CGFloat",
-            "key.parsed_scope.end" : 37,
-            "key.parsed_scope.start" : 37,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "CGFloat",
-            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-            "key.usr" : "s:10ListableUI14ListLayoutSizeV5width12CoreGraphics7CGFloatVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var height: CGFloat<\/Type><\/Declaration>",
-            "key.attributes" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var padding: UIEdgeInsets<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 15657
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The padding to place around the outside of the content of the list.",
+                "key.doc.declaration" : "public var padding: UIEdgeInsets",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "padding<\/Name>s:10ListableUI15TableAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp<\/USR>public var padding: UIEdgeInsets<\/Declaration>The padding to place around the outside of the content of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 289,
+                "key.doc.name" : "padding",
+                "key.doc.type" : "Other",
+                "key.doclength" : 72,
+                "key.docoffset" : 15577,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> padding<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 26,
+                "key.name" : "padding",
+                "key.namelength" : 7,
+                "key.nameoffset" : 15668,
+                "key.offset" : 15664,
+                "key.parsed_declaration" : "public var padding : UIEdgeInsets",
+                "key.parsed_scope.end" : 289,
+                "key.parsed_scope.start" : 289,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "UIEdgeInsets",
+                "key.typeusr" : "$sSo12UIEdgeInsetsVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp"
+              },
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 734
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> height<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 20,
-            "key.name" : "height",
-            "key.namelength" : 6,
-            "key.nameoffset" : 745,
-            "key.offset" : 741,
-            "key.parsed_declaration" : "public var height : CGFloat",
-            "key.parsed_scope.end" : 38,
-            "key.parsed_scope.start" : 38,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "CGFloat",
-            "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-            "key.usr" : "s:10ListableUI14ListLayoutSizeV6height12CoreGraphics7CGFloatVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var rotates: Bool<\/Type><\/Declaration>",
-            "key.attributes" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var width: WidthConstraint<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 15786
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The width of the content of the list, which can be optionally constrained.",
+                "key.doc.declaration" : "public var width: WidthConstraint",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI15TableAppearanceV6LayoutV5widthAA15WidthConstraintOvp<\/USR>public var width: WidthConstraint<\/Declaration>The width of the content of the list, which can be optionally constrained.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 291,
+                "key.doc.name" : "width",
+                "key.doc.type" : "Other",
+                "key.doclength" : 79,
+                "key.docoffset" : 15699,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: WidthConstraint<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 27,
+                "key.name" : "width",
+                "key.namelength" : 5,
+                "key.nameoffset" : 15797,
+                "key.offset" : 15793,
+                "key.parsed_declaration" : "public var width : WidthConstraint",
+                "key.parsed_scope.end" : 291,
+                "key.parsed_scope.start" : 291,
+                "key.related_decls" : [
+                  {
+                    "key.annotated_decl" : "width(with:padding:constraint:)<\/RelatedName>"
+                  }
+                ],
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "WidthConstraint",
+                "key.typeusr" : "$s10ListableUI15WidthConstraintOD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV5widthAA15WidthConstraintOvp"
+              },
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 771
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> rotates<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 18,
-            "key.name" : "rotates",
-            "key.namelength" : 7,
-            "key.nameoffset" : 782,
-            "key.offset" : 778,
-            "key.parsed_declaration" : "public var rotates : Bool",
-            "key.parsed_scope.end" : 40,
-            "key.parsed_scope.start" : 40,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI14ListLayoutSizeV7rotatesSbvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(width: CGFloat<\/Type>, height: CGFloat<\/Type>, rotates: Bool<\/Type>)<\/Declaration>",
-            "key.attributes" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var headerToFirstSectionSpacing: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 15961
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The spacing between the list header and the first section.\nNot applied if there is no list header.",
+                "key.doc.declaration" : "public var headerToFirstSectionSpacing: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "headerToFirstSectionSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV27headerToFirstSectionSpacing12CoreGraphics7CGFloatVvp<\/USR>public var headerToFirstSectionSpacing: CGFloat<\/Declaration>The spacing between the list header and the first section. Not applied if there is no list header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 295,
+                "key.doc.name" : "headerToFirstSectionSpacing",
+                "key.doc.type" : "Other",
+                "key.doclength" : 115,
+                "key.docoffset" : 15838,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> headerToFirstSectionSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 41,
+                "key.name" : "headerToFirstSectionSpacing",
+                "key.namelength" : 27,
+                "key.nameoffset" : 15972,
+                "key.offset" : 15968,
+                "key.parsed_declaration" : "public var headerToFirstSectionSpacing : CGFloat",
+                "key.parsed_scope.end" : 295,
+                "key.parsed_scope.start" : 295,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV27headerToFirstSectionSpacing12CoreGraphics7CGFloatVvp"
+              },
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 806
-              }
-            ],
-            "key.bodylength" : 92,
-            "key.bodyoffset" : 867,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rotates<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 147,
-            "key.name" : "init(width:height:rotates:)",
-            "key.namelength" : 52,
-            "key.nameoffset" : 813,
-            "key.offset" : 813,
-            "key.parsed_declaration" : "public init(width: CGFloat, height: CGFloat, rotates: Bool)",
-            "key.parsed_scope.end" : 46,
-            "key.parsed_scope.start" : 42,
-            "key.substructure" : [
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var interSectionSpacingWithNoFooter: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 16109
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The spacing to apply between sections, if the previous section has no footer.",
+                "key.doc.declaration" : "public var interSectionSpacingWithNoFooter: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "interSectionSpacingWithNoFooter<\/Name>s:10ListableUI15TableAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp<\/USR>public var interSectionSpacingWithNoFooter: CGFloat<\/Declaration>The spacing to apply between sections, if the previous section has no footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 298,
+                "key.doc.name" : "interSectionSpacingWithNoFooter",
+                "key.doc.type" : "Other",
+                "key.doclength" : 82,
+                "key.docoffset" : 16019,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interSectionSpacingWithNoFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 45,
+                "key.name" : "interSectionSpacingWithNoFooter",
+                "key.namelength" : 31,
+                "key.nameoffset" : 16120,
+                "key.offset" : 16116,
+                "key.parsed_declaration" : "public var interSectionSpacingWithNoFooter : CGFloat",
+                "key.parsed_scope.end" : 298,
+                "key.parsed_scope.start" : 298,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var interSectionSpacingWithFooter: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 16259
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The spacing to apply between sections, if the previous section has a footer.",
+                "key.doc.declaration" : "public var interSectionSpacingWithFooter: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "interSectionSpacingWithFooter<\/Name>s:10ListableUI15TableAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp<\/USR>public var interSectionSpacingWithFooter: CGFloat<\/Declaration>The spacing to apply between sections, if the previous section has a footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 300,
+                "key.doc.name" : "interSectionSpacingWithFooter",
+                "key.doc.type" : "Other",
+                "key.doclength" : 81,
+                "key.docoffset" : 16170,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> interSectionSpacingWithFooter<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 43,
+                "key.name" : "interSectionSpacingWithFooter",
+                "key.namelength" : 29,
+                "key.nameoffset" : 16270,
+                "key.offset" : 16266,
+                "key.parsed_declaration" : "public var interSectionSpacingWithFooter : CGFloat",
+                "key.parsed_scope.end" : 300,
+                "key.parsed_scope.start" : 300,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var sectionHeaderBottomSpacing: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 16457
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The spacing to apply below a section header, before its items.\nNot applied if there is no section header.",
+                "key.doc.declaration" : "public var sectionHeaderBottomSpacing: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "sectionHeaderBottomSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp<\/USR>public var sectionHeaderBottomSpacing: CGFloat<\/Declaration>The spacing to apply below a section header, before its items. Not applied if there is no section header.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 304,
+                "key.doc.name" : "sectionHeaderBottomSpacing",
+                "key.doc.type" : "Other",
+                "key.doclength" : 122,
+                "key.docoffset" : 16327,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sectionHeaderBottomSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 40,
+                "key.name" : "sectionHeaderBottomSpacing",
+                "key.namelength" : 26,
+                "key.nameoffset" : 16468,
+                "key.offset" : 16464,
+                "key.parsed_declaration" : "public var sectionHeaderBottomSpacing : CGFloat",
+                "key.parsed_scope.end" : 304,
+                "key.parsed_scope.start" : 304,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var itemSpacing: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 16590
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The spacing between individual items within a section in a list.",
+                "key.doc.declaration" : "public var itemSpacing: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "itemSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV11itemSpacing12CoreGraphics7CGFloatVvp<\/USR>public var itemSpacing: CGFloat<\/Declaration>The spacing between individual items within a section in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 306,
+                "key.doc.name" : "itemSpacing",
+                "key.doc.type" : "Other",
+                "key.doclength" : 69,
+                "key.docoffset" : 16513,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 25,
+                "key.name" : "itemSpacing",
+                "key.namelength" : 11,
+                "key.nameoffset" : 16601,
+                "key.offset" : 16597,
+                "key.parsed_declaration" : "public var itemSpacing : CGFloat",
+                "key.parsed_scope.end" : 306,
+                "key.parsed_scope.start" : 306,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV11itemSpacing12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var itemToSectionFooterSpacing: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 16763
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The spacing between the last item in the section and the footer.\nNot applied if there is no section footer.",
+                "key.doc.declaration" : "public var itemToSectionFooterSpacing: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "itemToSectionFooterSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp<\/USR>public var itemToSectionFooterSpacing: CGFloat<\/Declaration>The spacing between the last item in the section and the footer. Not applied if there is no section footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 309,
+                "key.doc.name" : "itemToSectionFooterSpacing",
+                "key.doc.type" : "Other",
+                "key.doclength" : 124,
+                "key.docoffset" : 16631,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemToSectionFooterSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 40,
+                "key.name" : "itemToSectionFooterSpacing",
+                "key.namelength" : 26,
+                "key.nameoffset" : 16774,
+                "key.offset" : 16770,
+                "key.parsed_declaration" : "public var itemToSectionFooterSpacing : CGFloat",
+                "key.parsed_scope.end" : 309,
+                "key.parsed_scope.start" : 309,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public var lastSectionToFooterSpacing: CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 16957
+                  }
+                ],
+                "key.doc.column" : 20,
+                "key.doc.comment" : "The spacing between the last section and the footer of the list.\nNot applied if there is no list footer.",
+                "key.doc.declaration" : "public var lastSectionToFooterSpacing: CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "lastSectionToFooterSpacing<\/Name>s:10ListableUI15TableAppearanceV6LayoutV26lastSectionToFooterSpacing12CoreGraphics7CGFloatVvp<\/USR>public var lastSectionToFooterSpacing: CGFloat<\/Declaration>The spacing between the last section and the footer of the list. Not applied if there is no list footer.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 313,
+                "key.doc.name" : "lastSectionToFooterSpacing",
+                "key.doc.type" : "Other",
+                "key.doclength" : 121,
+                "key.docoffset" : 16828,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastSectionToFooterSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 40,
+                "key.name" : "lastSectionToFooterSpacing",
+                "key.namelength" : 26,
+                "key.nameoffset" : 16968,
+                "key.offset" : 16964,
+                "key.parsed_declaration" : "public var lastSectionToFooterSpacing : CGFloat",
+                "key.parsed_scope.end" : 313,
+                "key.parsed_scope.start" : 313,
+                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV26lastSectionToFooterSpacing12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public init(padding: UIEdgeInsets<\/Type> = .zero, width: WidthConstraint<\/Type> = .noConstraint, headerToFirstSectionSpacing: CGFloat<\/Type> = 0.0, interSectionSpacingWithNoFooter: CGFloat<\/Type> = 0.0, interSectionSpacingWithFooter: CGFloat<\/Type> = 0.0, sectionHeaderBottomSpacing: CGFloat<\/Type> = 0.0, itemSpacing: CGFloat<\/Type> = 0.0, itemToSectionFooterSpacing: CGFloat<\/Type> = 0.0, lastSectionToFooterSpacing: CGFloat<\/Type> = 0.0)<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 17092
+                  }
+                ],
+                "key.bodylength" : 626,
+                "key.bodyoffset" : 17606,
+                "key.doc.column" : 16,
+                "key.doc.comment" : "Creates a new `Layout` with the provided options.",
+                "key.doc.declaration" : "public init(padding: UIEdgeInsets = .zero, width: WidthConstraint = .noConstraint, headerToFirstSectionSpacing: CGFloat = 0.0, interSectionSpacingWithNoFooter: CGFloat = 0.0, interSectionSpacingWithFooter: CGFloat = 0.0, sectionHeaderBottomSpacing: CGFloat = 0.0, itemSpacing: CGFloat = 0.0, itemToSectionFooterSpacing: CGFloat = 0.0, lastSectionToFooterSpacing: CGFloat = 0.0)",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)<\/Name>s:10ListableUI15TableAppearanceV6LayoutV7padding5width27headerToFirstSectionSpacing05interkL12WithNoFooter0mklnP0019sectionHeaderBottomL004itemL00tikpL004lastkipL0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA6Utcfc<\/USR>public init(padding: UIEdgeInsets = .zero, width: WidthConstraint = .noConstraint, headerToFirstSectionSpacing: CGFloat = 0.0, interSectionSpacingWithNoFooter: CGFloat = 0.0, interSectionSpacingWithFooter: CGFloat = 0.0, sectionHeaderBottomSpacing: CGFloat = 0.0, itemSpacing: CGFloat = 0.0, itemToSectionFooterSpacing: CGFloat = 0.0, lastSectionToFooterSpacing: CGFloat = 0.0)<\/Declaration>Creates a new Layout<\/codeVoice> with the provided options.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+                "key.doc.line" : 316,
+                "key.doc.name" : "init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)",
+                "key.doc.type" : "Function",
+                "key.doclength" : 54,
+                "key.docoffset" : 17030,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(padding<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>, headerToFirstSectionSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, interSectionSpacingWithNoFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, interSectionSpacingWithFooter<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, sectionHeaderBottomSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, itemSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, itemToSectionFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, lastSectionToFooterSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 1134,
+                "key.name" : "init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)",
+                "key.namelength" : 497,
+                "key.nameoffset" : 17099,
+                "key.offset" : 17099,
+                "key.parsed_declaration" : "public init(\n    padding : UIEdgeInsets = .zero,\n    width : WidthConstraint = .noConstraint,\n    headerToFirstSectionSpacing : CGFloat = 0.0,\n    interSectionSpacingWithNoFooter : CGFloat = 0.0,\n    interSectionSpacingWithFooter : CGFloat = 0.0,\n    sectionHeaderBottomSpacing : CGFloat = 0.0,\n    itemSpacing : CGFloat = 0.0,\n    itemToSectionFooterSpacing : CGFloat = 0.0,\n    lastSectionToFooterSpacing : CGFloat = 0.0\n)",
+                "key.parsed_scope.end" : 341,
+                "key.parsed_scope.start" : 316,
+                "key.substructure" : [
 
-            ],
-            "key.typename" : "(ListLayoutSize.Type) -> (CGFloat, CGFloat, Bool) -> ListLayoutSize",
-            "key.typeusr" : "$s5width6height7rotates10ListableUI14ListLayoutSizeV12CoreGraphics7CGFloatV_AISbtcD",
-            "key.usr" : "s:10ListableUI14ListLayoutSizeV5width6height7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public func CGPointValue(for direction: LayoutDirection<\/Type>) -> CGSize<\/Type><\/Declaration>",
-            "key.attributes" : [
+                ],
+                "key.typename" : "(TableAppearance.Layout.Type) -> (UIEdgeInsets, WidthConstraint, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat, CGFloat) -> TableAppearance.Layout",
+                "key.typeusr" : "$s7padding5width27headerToFirstSectionSpacing05interfG12WithNoFooter0hfgiK0019sectionHeaderBottomG004itemG00odfkG004lastfdkG010ListableUI15TableAppearanceV6LayoutVSo12UIEdgeInsetsV_AJ15WidthConstraintO12CoreGraphics7CGFloatVA6UtcD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV7padding5width27headerToFirstSectionSpacing05interkL12WithNoFooter0mklnP0019sectionHeaderBottomL004itemL00tikpL004lastkipL0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA6Utcfc"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public mutating func set(with block: (inout Layout<\/Type>) -> ())<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.mutating",
+                    "key.length" : 8,
+                    "key.offset" : 18299
+                  },
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 18292
+                  }
+                ],
+                "key.bodylength" : 92,
+                "key.bodyoffset" : 18361,
+                "key.doc.column" : 30,
+                "key.doc.comment" : "Easily mutate the `Layout` in place.",
+                "key.doc.declaration" : "public mutating func set(with block: (inout Layout) -> ())",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "set(with:)<\/Name>s:10ListableUI15TableAppearanceV6LayoutV3set4withyyAEzXE_tF<\/USR>public mutating func set(with block: (inout Layout) -> ())<\/Declaration>Easily mutate the Layout<\/codeVoice> in place.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+                "key.doc.line" : 344,
+                "key.doc.name" : "set(with:)",
+                "key.doc.type" : "Function",
+                "key.doclength" : 41,
+                "key.docoffset" : 18243,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(with<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Layout<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+                "key.kind" : "source.lang.swift.decl.function.method.instance",
+                "key.length" : 146,
+                "key.name" : "set(with:)",
+                "key.namelength" : 38,
+                "key.nameoffset" : 18313,
+                "key.offset" : 18308,
+                "key.parsed_declaration" : "public mutating func set(with block : (inout Layout) -> ())",
+                "key.parsed_scope.end" : 349,
+                "key.parsed_scope.start" : 344,
+                "key.substructure" : [
+                  {
+                    "key.annotated_decl" : "var edited: TableAppearance<\/Type>.Layout<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                    "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> edited<\/decl.name>: TableAppearance<\/ref.struct>.Layout<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 17,
+                    "key.name" : "edited",
+                    "key.namelength" : 6,
+                    "key.nameoffset" : 18378,
+                    "key.offset" : 18374,
+                    "key.parsed_declaration" : "var edited = self",
+                    "key.parsed_scope.end" : 346,
+                    "key.parsed_scope.start" : 346,
+                    "key.typename" : "TableAppearance.Layout",
+                    "key.typeusr" : "$s10ListableUI15TableAppearanceV6LayoutVD",
+                    "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV3set4withyyAEzXE_tF6editedL_AEvp"
+                  }
+                ],
+                "key.typename" : "(inout TableAppearance.Layout) -> ((inout TableAppearance.Layout) -> ()) -> ()",
+                "key.typeusr" : "$s4withyy10ListableUI15TableAppearanceV6LayoutVzXE_tcD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV3set4withyyAEzXE_tF"
+              },
               {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 970
+                "key.accessibility" : "source.lang.swift.accessibility.internal",
+                "key.annotated_decl" : "internal static func width(with width: CGFloat<\/Type>, padding: HorizontalPadding<\/Type>, constraint: WidthConstraint<\/Type>) -> CGFloat<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.internal",
+                    "key.length" : 8,
+                    "key.offset" : 18513
+                  }
+                ],
+                "key.bodylength" : 138,
+                "key.bodyoffset" : 18687,
+                "key.doc.column" : 30,
+                "key.doc.comment" : "Provides a width for layout.",
+                "key.doc.declaration" : "internal static func width(with width: CGFloat, padding: HorizontalPadding, constraint: WidthConstraint) -> CGFloat",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.doc.full_as_xml" : "width(with:padding:constraint:)<\/Name>s:10ListableUI15TableAppearanceV6LayoutV5width4with7padding10constraint12CoreGraphics7CGFloatVAL_AA17HorizontalPaddingVAA15WidthConstraintOtFZ<\/USR>internal static func width(with width: CGFloat, padding: HorizontalPadding, constraint: WidthConstraint) -> CGFloat<\/Declaration>Provides a width for layout.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+                "key.doc.line" : 352,
+                "key.doc.name" : "width(with:padding:constraint:)",
+                "key.doc.type" : "Function",
+                "key.doclength" : 33,
+                "key.docoffset" : 18472,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> width<\/decl.name>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, padding<\/decl.var.parameter.argument_label>: HorizontalPadding<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, constraint<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
+                "key.kind" : "source.lang.swift.decl.function.method.static",
+                "key.length" : 304,
+                "key.name" : "width(with:padding:constraint:)",
+                "key.namelength" : 132,
+                "key.nameoffset" : 18534,
+                "key.offset" : 18522,
+                "key.parsed_declaration" : "internal static func width(\n    with width : CGFloat,\n    padding : HorizontalPadding,\n    constraint : WidthConstraint\n) -> CGFloat",
+                "key.parsed_scope.end" : 361,
+                "key.parsed_scope.start" : 352,
+                "key.related_decls" : [
+                  {
+                    "key.annotated_decl" : "width<\/RelatedName>"
+                  }
+                ],
+                "key.substructure" : [
+                  {
+                    "key.annotated_decl" : "let paddedWidth: CGFloat<\/Type><\/Declaration>",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                    "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> paddedWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                    "key.kind" : "source.lang.swift.decl.var.local",
+                    "key.length" : 54,
+                    "key.name" : "paddedWidth",
+                    "key.namelength" : 11,
+                    "key.nameoffset" : 18704,
+                    "key.offset" : 18700,
+                    "key.parsed_declaration" : "let paddedWidth = width - padding.left - padding.right",
+                    "key.parsed_scope.end" : 358,
+                    "key.parsed_scope.start" : 358,
+                    "key.typename" : "CGFloat",
+                    "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                    "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV5width4with7padding10constraint12CoreGraphics7CGFloatVAL_AA17HorizontalPaddingVAA15WidthConstraintOtFZ06paddedO0L_ALvp"
+                  }
+                ],
+                "key.typename" : "(TableAppearance.Layout.Type) -> (CGFloat, HorizontalPadding, WidthConstraint) -> CGFloat",
+                "key.typeusr" : "$s4with7padding10constraint12CoreGraphics7CGFloatVAF_10ListableUI17HorizontalPaddingVAG15WidthConstraintOtcD",
+                "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV5width4with7padding10constraint12CoreGraphics7CGFloatVAL_AA17HorizontalPaddingVAA15WidthConstraintOtFZ"
               }
             ],
-            "key.bodylength" : 218,
-            "key.bodyoffset" : 1039,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutValues.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> CGPointValue<\/decl.name>(for<\/decl.var.parameter.argument_label> direction<\/decl.var.parameter.name>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 281,
-            "key.name" : "CGPointValue(for:)",
-            "key.namelength" : 45,
-            "key.nameoffset" : 982,
-            "key.offset" : 977,
-            "key.parsed_declaration" : "public func CGPointValue(for direction : LayoutDirection) -> CGSize",
-            "key.parsed_scope.end" : 54,
-            "key.parsed_scope.start" : 48,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(ListLayoutSize) -> (LayoutDirection) -> CGSize",
-            "key.typeusr" : "$s3forSo6CGSizeV10ListableUI15LayoutDirectionO_tcD",
-            "key.usr" : "s:10ListableUI14ListLayoutSizeV12CGPointValue3forSo6CGSizeVAA0D9DirectionO_tF"
+            "key.typename" : "TableAppearance.Layout.Type",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV6LayoutVmD",
+            "key.usr" : "s:10ListableUI15TableAppearanceV6LayoutV"
           }
         ],
-        "key.typename" : "ListLayoutSize.Type",
-        "key.typeusr" : "$s10ListableUI14ListLayoutSizeVmD",
-        "key.usr" : "s:10ListableUI14ListLayoutSizeV"
-      }
-    ]
-  }
-}, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift" : {
-    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 6321,
-    "key.offset" : 0,
-    "key.substructure" : [
+        "key.typename" : "TableAppearance.Type",
+        "key.typeusr" : "$s10ListableUI15TableAppearanceVmD",
+        "key.usr" : "s:10ListableUI15TableAppearanceV"
+      },
       {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct LayoutDescription<\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 93
-          }
-        ],
-        "key.bodylength" : 165,
-        "key.bodyoffset" : 129,
+        "key.annotated_decl" : "public struct ItemLayouts<\/Declaration>",
+        "key.bodylength" : 287,
+        "key.bodyoffset" : 18860,
         "key.doc.column" : 15,
-        "key.doc.declaration" : "public struct LayoutDescription",
+        "key.doc.declaration" : "public struct ItemLayouts",
         "key.doc.discussion" : [
           {
-            "Para" : "You use a `LayoutDescription` by passing a closure to its initializer, which you use to customize the `layoutAppearance` of the provided list type."
-          },
-          {
-            "Para" : "For example, to use a standard list layout, and customize the layout, your code would look something like this:"
+            "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your item:"
           },
           {
             "CodeListing" : ""
           },
           {
-            "Para" : "Or a layout for your own custom layout type would look somewhat like this:"
+            "Para" : "And then, when the `Item` is used within a `.table` style list layout, the provided layout will be used."
           },
           {
-            "CodeListing" : ""
+            "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:"
           },
           {
-            "Para" : "Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes)."
-          }
-        ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-        "key.doc.full_as_xml" : "LayoutDescription<\/Name>s:10ListableUI17LayoutDescriptionV<\/USR>public struct LayoutDescription<\/Declaration>A LayoutDescription<\/codeVoice>, well, describes the type of and properties of a layout to apply to a list view.<\/Para><\/Abstract>You use a LayoutDescription<\/codeVoice> by passing a closure to its initializer, which you use to customize the layoutAppearance<\/codeVoice> of the provided list type.<\/Para>For example, to use a standard list layout, and customize the layout, your code would look something like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Or a layout for your own custom layout type would look somewhat like this:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>Under the hood, Listable is smart, and will only re-create the underlying layout object when needed (when the layout type or layout appearance changes).<\/Para><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 42,
-        "key.doc.name" : "LayoutDescription",
-        "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/ListLayout\/LayoutDescription.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LayoutDescription<\/decl.name><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 195,
-        "key.name" : "LayoutDescription",
-        "key.namelength" : 17,
-        "key.nameoffset" : 110,
-        "key.offset" : 100,
-        "key.parsed_declaration" : "public extension LayoutDescription",
-        "key.parsed_scope.end" : 15,
-        "key.parsed_scope.start" : 9,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "static func paged(_ configure: @escaping (inout PagedAppearance<\/Type>) -> () = { _ in }) -> LayoutDescription<\/Type><\/Declaration>",
-            "key.bodylength" : 61,
-            "key.bodyoffset" : 231,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> paged<\/decl.name>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (inout<\/syntaxtype.keyword> PagedAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> LayoutDescription<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
-            "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 159,
-            "key.name" : "paged(_:)",
-            "key.namelength" : 71,
-            "key.nameoffset" : 146,
-            "key.offset" : 134,
-            "key.parsed_declaration" : "static func paged(_ configure : @escaping (inout PagedAppearance) -> () = { _ in }) -> Self",
-            "key.parsed_scope.end" : 14,
-            "key.parsed_scope.start" : 11,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(LayoutDescription.Type) -> (@escaping (inout PagedAppearance) -> ()) -> LayoutDescription",
-            "key.typeusr" : "$sy10ListableUI17LayoutDescriptionVyAA15PagedAppearanceVzccD",
-            "key.usr" : "s:10ListableUI17LayoutDescriptionV5pagedyACyAA15PagedAppearanceVzcFZ"
-          }
-        ],
-        "key.typename" : "LayoutDescription.Type",
-        "key.typeusr" : "$s10ListableUI17LayoutDescriptionVmD",
-        "key.usr" : "s:10ListableUI17LayoutDescriptionV"
-      },
-      {
-        "key.accessibility" : "source.lang.swift.accessibility.public",
-        "key.annotated_decl" : "public struct PagedAppearance : ListLayoutAppearance<\/Type><\/Declaration>",
-        "key.attributes" : [
-          {
-            "key.attribute" : "source.decl.attribute.public",
-            "key.length" : 6,
-            "key.offset" : 2151
-          }
-        ],
-        "key.bodylength" : 1493,
-        "key.bodyoffset" : 2205,
-        "key.doc.column" : 15,
-        "key.doc.comment" : "Describes the available appearance configuration options for a paged list layout.\nPaged list layouts lay out the headers, footers, and items in a list in a paged layout,\nsimilar to how UIPageViewController works.\n\nYou can control the direction via the `direction` property, and you can control\nthe inset on each page via the `itemInsets` property. You may also optionally show\nthe scroll indicators with the `showsScrollIndicators` property.\n\nNote\n----\nDo not edit this ASCII diagram directly.\nEdit the `PagedAppearance.monopic` file in this directory using Monodraw.\n```\n┌─────────────────────────────────┐\n│          itemInsets.top         │\n│   ┌─────────────────────────┐ i │\n│ i │                         │ t │\n│ t │                         │ e │\n│ e │                         │ m │\n│ m │                         │ I │\n│ I │                         │ n │\n│ n │                         │ s │\n│ s │                         │ e │\n│ e │                         │ t │\n│ t │                         │ s │\n│ s │                         │ . │\n│ . │                         │ r │\n│ l │                         │ i │\n│ e │                         │ g │\n│ f │                         │ h │\n│ t │                         │ t │\n│   └─────────────────────────┘   │\n│        itemInsets.bottom        │\n└─────────────────────────────────┘\n```",
-        "key.doc.declaration" : "public struct PagedAppearance : ListLayoutAppearance",
-        "key.doc.discussion" : [
-          {
-            "Para" : "You can control the direction via the `direction` property, and you can control the inset on each page via the `itemInsets` property. You may also optionally show the scroll indicators with the `showsScrollIndicators` property."
+            "CodeListing" : ""
           },
           {
-            "Para" : "Do not edit this ASCII diagram directly. Edit the `PagedAppearance.monopic` file in this directory using Monodraw."
+            "Para" : "When implementing your own custom layout, you should add an extension to `ItemLayouts`, to provide easier access to your layout-specific `ItemLayoutsValue` type, like so:"
           },
           {
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-        "key.doc.full_as_xml" : "PagedAppearance<\/Name>s:10ListableUI15PagedAppearanceV<\/USR>public struct PagedAppearance : ListLayoutAppearance<\/Declaration>Describes the available appearance configuration options for a paged list layout. Paged list layouts lay out the headers, footers, and items in a list in a paged layout, similar to how UIPageViewController works.<\/Para><\/Abstract>You can control the direction via the direction<\/codeVoice> property, and you can control the inset on each page via the itemInsets<\/codeVoice> property. You may also optionally show the scroll indicators with the showsScrollIndicators<\/codeVoice> property.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>Do not edit this ASCII diagram directly. Edit the PagedAppearance.monopic<\/codeVoice> file in this directory using Monodraw.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
-        "key.doc.line" : 52,
-        "key.doc.name" : "PagedAppearance",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+        "key.doc.full_as_xml" : "ItemLayouts<\/Name>s:10ListableUI11ItemLayoutsV<\/USR>public struct ItemLayouts<\/Declaration>ItemLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your item:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Item<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to ItemLayouts<\/codeVoice>, to provide easier access to your layout-specific ItemLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 54,
+        "key.doc.name" : "ItemLayouts",
         "key.doc.type" : "Class",
-        "key.doclength" : 1854,
-        "key.docoffset" : 297,
-        "key.elements" : [
-          {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 20,
-            "key.offset" : 2183
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> PagedAppearance<\/decl.name> : ListLayoutAppearance<\/ref.protocol><\/decl.struct>",
-        "key.inheritedtypes" : [
-          {
-            "key.name" : "ListLayoutAppearance"
-          }
-        ],
-        "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 1541,
-        "key.name" : "PagedAppearance",
-        "key.namelength" : 15,
-        "key.nameoffset" : 2165,
-        "key.offset" : 2158,
-        "key.parsed_declaration" : "public struct PagedAppearance : ListLayoutAppearance",
-        "key.parsed_scope.end" : 99,
-        "key.parsed_scope.start" : 52,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/ItemLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemLayouts<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 311,
+        "key.name" : "ItemLayouts",
+        "key.namelength" : 11,
+        "key.nameoffset" : 18847,
+        "key.offset" : 18837,
+        "key.parsed_declaration" : "extension ItemLayouts",
+        "key.parsed_scope.end" : 373,
+        "key.parsed_scope.start" : 366,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public static var `default`: PagedAppearance<\/Type> { get }<\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 2210
-              }
-            ],
-            "key.bodylength" : 25,
-            "key.bodyoffset" : 2256,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: PagedAppearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
-            "key.kind" : "source.lang.swift.decl.var.static",
-            "key.length" : 65,
-            "key.name" : "default",
-            "key.namelength" : 7,
-            "key.nameoffset" : 2228,
-            "key.offset" : 2217,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ"
-              }
-            ],
-            "key.parsed_declaration" : "public static var `default`: PagedAppearance",
-            "key.parsed_scope.end" : 56,
-            "key.parsed_scope.start" : 54,
-            "key.typename" : "PagedAppearance",
-            "key.typeusr" : "$s10ListableUI15PagedAppearanceVD",
-            "key.usr" : "s:10ListableUI15PagedAppearanceV7defaultACvpZ"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var direction: LayoutDirection<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public var table: TableAppearance<\/Type>.ItemLayout<\/Type> { get set }<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2373
+                "key.offset" : 18974
               }
             ],
+            "key.bodylength" : 124,
+            "key.bodyoffset" : 19021,
             "key.doc.column" : 16,
-            "key.doc.comment" : "The direction the paging layout should occur in. Defaults to `vertical`.",
-            "key.doc.declaration" : "public var direction: LayoutDirection",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.doc.full_as_xml" : "direction<\/Name>s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp<\/USR>public var direction: LayoutDirection<\/Declaration>The direction the paging layout should occur in. Defaults to vertical<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 59,
-            "key.doc.name" : "direction",
+            "key.doc.comment" : "Allows customization of an `Item`'s layout when it is presented within a `.table` style layout.",
+            "key.doc.declaration" : "public var table: TableAppearance.ItemLayout { get set }",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.doc.full_as_xml" : "table<\/Name>s:10ListableUI11ItemLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp<\/USR>public var table: TableAppearance.ItemLayout { get set }<\/Declaration>Allows customization of an Item<\/codeVoice>’s layout when it is presented within a .table<\/codeVoice> style layout.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 369,
+            "key.doc.name" : "table",
             "key.doc.type" : "Other",
-            "key.doclength" : 77,
-            "key.docoffset" : 2292,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
+            "key.doclength" : 100,
+            "key.docoffset" : 18870,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> table<\/decl.name>: TableAppearance<\/ref.struct>.ItemLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 30,
-            "key.name" : "direction",
-            "key.namelength" : 9,
-            "key.nameoffset" : 2384,
-            "key.offset" : 2380,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp"
-              }
-            ],
-            "key.parsed_declaration" : "public var direction: LayoutDirection",
-            "key.parsed_scope.end" : 59,
-            "key.parsed_scope.start" : 59,
+            "key.length" : 165,
+            "key.name" : "table",
+            "key.namelength" : 5,
+            "key.nameoffset" : 18985,
+            "key.offset" : 18981,
+            "key.parsed_declaration" : "public var table : TableAppearance.ItemLayout",
+            "key.parsed_scope.end" : 372,
+            "key.parsed_scope.start" : 369,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "LayoutDirection",
-            "key.typeusr" : "$s10ListableUI15LayoutDirectionOD",
-            "key.usr" : "s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp"
+            "key.typename" : "TableAppearance.ItemLayout",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV10ItemLayoutVD",
+            "key.usr" : "s:10ListableUI11ItemLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp"
+          }
+        ],
+        "key.typename" : "ItemLayouts.Type",
+        "key.typeusr" : "$s10ListableUI11ItemLayoutsVmD",
+        "key.usr" : "s:10ListableUI11ItemLayoutsV"
+      },
+      {
+        "key.annotated_decl" : "public struct HeaderFooterLayouts<\/Declaration>",
+        "key.bodylength" : 318,
+        "key.bodyoffset" : 19182,
+        "key.doc.column" : 15,
+        "key.doc.declaration" : "public struct HeaderFooterLayouts",
+        "key.doc.discussion" : [
+          {
+            "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your header:"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public let stickySectionHeaders: Bool<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 2420
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> stickySectionHeaders<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 38,
-            "key.name" : "stickySectionHeaders",
-            "key.namelength" : 20,
-            "key.nameoffset" : 2431,
-            "key.offset" : 2427,
-            "key.overrides" : [
-              {
-                "key.usr" : "s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp"
-              }
-            ],
-            "key.parsed_declaration" : "public let stickySectionHeaders: Bool = false",
-            "key.parsed_scope.end" : 61,
-            "key.parsed_scope.start" : 61,
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI15PagedAppearanceV20stickySectionHeadersSbvp"
+            "CodeListing" : ""
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var showsScrollIndicators: Bool<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 2549
-              }
-            ],
-            "key.doc.column" : 16,
-            "key.doc.comment" : "If scroll indicators should be visible along the scrollable axis.",
-            "key.doc.declaration" : "public var showsScrollIndicators: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.doc.full_as_xml" : "showsScrollIndicators<\/Name>s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp<\/USR>public var showsScrollIndicators: Bool<\/Declaration>If scroll indicators should be visible along the scrollable axis.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 64,
-            "key.doc.name" : "showsScrollIndicators",
-            "key.doc.type" : "Other",
-            "key.doclength" : 70,
-            "key.docoffset" : 2475,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> showsScrollIndicators<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 32,
-            "key.name" : "showsScrollIndicators",
-            "key.namelength" : 21,
-            "key.nameoffset" : 2560,
-            "key.offset" : 2556,
-            "key.parsed_declaration" : "public var showsScrollIndicators : Bool",
-            "key.parsed_scope.end" : 64,
-            "key.parsed_scope.start" : 64,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Bool",
-            "key.typeusr" : "$sSbD",
-            "key.usr" : "s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp"
+            "Para" : "And then, when the `HeaderFooter` is used within a `.table` style list layout, the provided layout will be used."
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var itemInsets: UIEdgeInsets<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 2680
-              }
-            ],
-            "key.doc.column" : 16,
-            "key.doc.comment" : "How far each item in the list should be inset from the edges of the view.",
-            "key.doc.declaration" : "public var itemInsets: UIEdgeInsets",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.doc.full_as_xml" : "itemInsets<\/Name>s:10ListableUI15PagedAppearanceV10itemInsetsSo06UIEdgeF0Vvp<\/USR>public var itemInsets: UIEdgeInsets<\/Declaration>How far each item in the list should be inset from the edges of the view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 67,
-            "key.doc.name" : "itemInsets",
-            "key.doc.type" : "Other",
-            "key.doclength" : 78,
-            "key.docoffset" : 2598,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> itemInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 29,
-            "key.name" : "itemInsets",
-            "key.namelength" : 10,
-            "key.nameoffset" : 2691,
-            "key.offset" : 2687,
-            "key.parsed_declaration" : "public var itemInsets : UIEdgeInsets",
-            "key.parsed_scope.end" : 67,
-            "key.parsed_scope.start" : 67,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "UIEdgeInsets",
-            "key.typeusr" : "$sSo12UIEdgeInsetsVD",
-            "key.usr" : "s:10ListableUI15PagedAppearanceV10itemInsetsSo06UIEdgeF0Vvp"
+            "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "internal var pagingSize: PagingSize<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.internal",
-                "key.length" : 8,
-                "key.offset" : 2775
-              }
-            ],
-            "key.doc.column" : 18,
-            "key.doc.comment" : "Internal property for test harness only.",
-            "key.doc.declaration" : "internal var pagingSize: PagingSize",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.doc.full_as_xml" : "pagingSize<\/Name>s:10ListableUI15PagedAppearanceV10pagingSizeAC06PagingF0Ovp<\/USR>internal var pagingSize: PagingSize<\/Declaration>Internal property for test harness only.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 70,
-            "key.doc.name" : "pagingSize",
-            "key.doc.type" : "Other",
-            "key.doclength" : 45,
-            "key.docoffset" : 2726,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> var<\/syntaxtype.keyword> pagingSize<\/decl.name>: PagingSize<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 27,
-            "key.name" : "pagingSize",
-            "key.namelength" : 10,
-            "key.nameoffset" : 2788,
-            "key.offset" : 2784,
-            "key.parsed_declaration" : "internal var pagingSize : PagingSize",
-            "key.parsed_scope.end" : 70,
-            "key.parsed_scope.start" : 70,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "PagedAppearance.PagingSize",
-            "key.typeusr" : "$s10ListableUI15PagedAppearanceV10PagingSizeOD",
-            "key.usr" : "s:10ListableUI15PagedAppearanceV10pagingSizeAC06PagingF0Ovp"
+            "CodeListing" : ""
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init(direction: LayoutDirection<\/Type> = .vertical, showsScrollIndicators: Bool<\/Type> = false, itemInsets: UIEdgeInsets<\/Type> = .zero)<\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 2821
-              }
-            ],
-            "key.bodylength" : 177,
-            "key.bodyoffset" : 2977,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type> = .vertical<\/decl.var.parameter>, showsScrollIndicators<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, itemInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>)<\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 327,
-            "key.name" : "init(direction:showsScrollIndicators:itemInsets:)",
-            "key.namelength" : 147,
-            "key.nameoffset" : 2828,
-            "key.offset" : 2828,
-            "key.parsed_declaration" : "public init(\n    direction: LayoutDirection = .vertical,\n    showsScrollIndicators : Bool = false,\n    itemInsets : UIEdgeInsets = .zero\n)",
-            "key.parsed_scope.end" : 82,
-            "key.parsed_scope.start" : 72,
-            "key.substructure" : [
-
-            ],
-            "key.typename" : "(PagedAppearance.Type) -> (LayoutDirection, Bool, UIEdgeInsets) -> PagedAppearance",
-            "key.typeusr" : "$s9direction21showsScrollIndicators10itemInsets10ListableUI15PagedAppearanceVAD15LayoutDirectionO_SbSo06UIEdgeF0VtcD",
-            "key.usr" : "s:10ListableUI15PagedAppearanceV9direction21showsScrollIndicators10itemInsetsAcA15LayoutDirectionO_SbSo06UIEdgeJ0Vtcfc"
+            "Para" : "When implementing your own custom layout, you should add an extension to `HeaderFooterLayouts`, to provide easier access to your layout-specific `HeaderFooterLayoutsValue` type, like so:"
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "enum PagedAppearance<\/Type>.PagingSize : Equatable<\/Type><\/Declaration>",
-            "key.bodylength" : 502,
-            "key.bodyoffset" : 3194,
-            "key.elements" : [
-              {
-                "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 9,
-                "key.offset" : 3183
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> PagedAppearance<\/ref.struct>.PagingSize<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
-            "key.inheritedtypes" : [
-              {
-                "key.name" : "Equatable"
-              }
-            ],
-            "key.kind" : "source.lang.swift.decl.enum",
-            "key.length" : 532,
-            "key.name" : "PagingSize",
-            "key.namelength" : 10,
-            "key.nameoffset" : 3170,
-            "key.offset" : 3165,
-            "key.parsed_declaration" : "enum PagingSize : Equatable",
-            "key.parsed_scope.end" : 98,
-            "key.parsed_scope.start" : 84,
-            "key.substructure" : [
-              {
-                "key.kind" : "source.lang.swift.decl.enumcase",
-                "key.length" : 9,
-                "key.namelength" : 0,
-                "key.nameoffset" : 0,
-                "key.offset" : 3203,
-                "key.substructure" : [
-                  {
-                    "key.accessibility" : "source.lang.swift.accessibility.internal",
-                    "key.annotated_decl" : "case view<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> view<\/decl.name><\/decl.enumelement>",
-                    "key.kind" : "source.lang.swift.decl.enumelement",
-                    "key.length" : 4,
-                    "key.name" : "view",
-                    "key.namelength" : 4,
-                    "key.nameoffset" : 3208,
-                    "key.offset" : 3208,
-                    "key.parsed_declaration" : "case view",
-                    "key.parsed_scope.end" : 85,
-                    "key.parsed_scope.start" : 85,
-                    "key.typename" : "(PagedAppearance.PagingSize.Type) -> PagedAppearance.PagingSize",
-                    "key.typeusr" : "$sy10ListableUI15PagedAppearanceV10PagingSizeOAEmcD",
-                    "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO4viewyA2EmF"
-                  }
-                ]
-              },
-              {
-                "key.kind" : "source.lang.swift.decl.enumcase",
-                "key.length" : 19,
-                "key.namelength" : 0,
-                "key.nameoffset" : 0,
-                "key.offset" : 3221,
-                "key.substructure" : [
-                  {
-                    "key.accessibility" : "source.lang.swift.accessibility.internal",
-                    "key.annotated_decl" : "case fixed(CGFloat<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-                    "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
-                    "key.kind" : "source.lang.swift.decl.enumelement",
-                    "key.length" : 14,
-                    "key.name" : "fixed(_:)",
-                    "key.namelength" : 14,
-                    "key.nameoffset" : 3226,
-                    "key.offset" : 3226,
-                    "key.parsed_declaration" : "case fixed(CGFloat)",
-                    "key.parsed_scope.end" : 86,
-                    "key.parsed_scope.start" : 86,
-                    "key.substructure" : [
-
-                    ],
-                    "key.typename" : "(PagedAppearance.PagingSize.Type) -> (CGFloat) -> PagedAppearance.PagingSize",
-                    "key.typeusr" : "$sy10ListableUI15PagedAppearanceV10PagingSizeO12CoreGraphics7CGFloatVcAEmcD",
-                    "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO5fixedyAE12CoreGraphics7CGFloatVcAEmF"
-                  }
-                ]
-              },
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+        "key.doc.full_as_xml" : "HeaderFooterLayouts<\/Name>s:10ListableUI19HeaderFooterLayoutsV<\/USR>public struct HeaderFooterLayouts<\/Declaration>HeaderFooterLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your header:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the HeaderFooter<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to HeaderFooterLayouts<\/codeVoice>, to provide easier access to your layout-specific HeaderFooterLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 55,
+        "key.doc.name" : "HeaderFooterLayouts",
+        "key.doc.type" : "Class",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/HeaderFooter\/HeaderFooterLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HeaderFooterLayouts<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 350,
+        "key.name" : "HeaderFooterLayouts",
+        "key.namelength" : 19,
+        "key.nameoffset" : 19161,
+        "key.offset" : 19151,
+        "key.parsed_declaration" : "extension HeaderFooterLayouts",
+        "key.parsed_scope.end" : 383,
+        "key.parsed_scope.start" : 376,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var table: TableAppearance<\/Type>.HeaderFooterLayout<\/Type> { get set }<\/Declaration>",
+            "key.attributes" : [
               {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "func size(for view: UIView<\/Type>, direction: LayoutDirection<\/Type>) -> CGSize<\/Type><\/Declaration>",
-                "key.bodylength" : 363,
-                "key.bodyoffset" : 3327,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-                "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 433,
-                "key.name" : "size(for:direction:)",
-                "key.namelength" : 52,
-                "key.nameoffset" : 3263,
-                "key.offset" : 3258,
-                "key.parsed_declaration" : "func size(for view : UIView, direction : LayoutDirection) -> CGSize",
-                "key.parsed_scope.end" : 97,
-                "key.parsed_scope.start" : 88,
-                "key.substructure" : [
-
-                ],
-                "key.typename" : "(PagedAppearance.PagingSize) -> (UIView, LayoutDirection) -> CGSize",
-                "key.typeusr" : "$s3for9directionSo6CGSizeVSo6UIViewC_10ListableUI15LayoutDirectionOtcD",
-                "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO4size3for9directionSo6CGSizeVSo6UIViewC_AA15LayoutDirectionOtF"
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 19303
               }
             ],
-            "key.typename" : "PagedAppearance.PagingSize.Type",
-            "key.typeusr" : "$s10ListableUI15PagedAppearanceV10PagingSizeOmD",
-            "key.usr" : "s:10ListableUI15PagedAppearanceV10PagingSizeO"
+            "key.bodylength" : 140,
+            "key.bodyoffset" : 19358,
+            "key.doc.column" : 16,
+            "key.doc.comment" : "Allows customization of a `HeaderFooter`'s layout when it is presented within a `.table` style layout.",
+            "key.doc.declaration" : "public var table: TableAppearance.HeaderFooterLayout { get set }",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.doc.full_as_xml" : "table<\/Name>s:10ListableUI19HeaderFooterLayoutsV5tableAA15TableAppearanceV0cD6LayoutVvp<\/USR>public var table: TableAppearance.HeaderFooterLayout { get set }<\/Declaration>Allows customization of a HeaderFooter<\/codeVoice>’s layout when it is presented within a .table<\/codeVoice> style layout.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 379,
+            "key.doc.name" : "table",
+            "key.doc.type" : "Other",
+            "key.doclength" : 107,
+            "key.docoffset" : 19192,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> table<\/decl.name>: TableAppearance<\/ref.struct>.HeaderFooterLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 189,
+            "key.name" : "table",
+            "key.namelength" : 5,
+            "key.nameoffset" : 19314,
+            "key.offset" : 19310,
+            "key.parsed_declaration" : "public var table : TableAppearance.HeaderFooterLayout",
+            "key.parsed_scope.end" : 382,
+            "key.parsed_scope.start" : 379,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "TableAppearance.HeaderFooterLayout",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV18HeaderFooterLayoutVD",
+            "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV5tableAA15TableAppearanceV0cD6LayoutVvp"
           }
         ],
-        "key.typename" : "PagedAppearance.Type",
-        "key.typeusr" : "$s10ListableUI15PagedAppearanceVmD",
-        "key.usr" : "s:10ListableUI15PagedAppearanceV"
+        "key.typename" : "HeaderFooterLayouts.Type",
+        "key.typeusr" : "$s10ListableUI19HeaderFooterLayoutsVmD",
+        "key.usr" : "s:10ListableUI19HeaderFooterLayoutsV"
+      },
+      {
+        "key.annotated_decl" : "public struct SectionLayouts<\/Declaration>",
+        "key.bodylength" : 298,
+        "key.bodyoffset" : 19530,
+        "key.doc.column" : 15,
+        "key.doc.declaration" : "public struct SectionLayouts",
+        "key.doc.discussion" : [
+          {
+            "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your section:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "And then, when the `Section` is used within a `.table` style list layout, the provided layout will be used."
+          },
+          {
+            "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "When implementing your own custom layout, you should add an extension to `SectionLayouts`, to provide easier access to your layout-specific `SectionLayoutsValue` type, like so:"
+          },
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+        "key.doc.full_as_xml" : "SectionLayouts<\/Name>s:10ListableUI14SectionLayoutsV<\/USR>public struct SectionLayouts<\/Declaration>SectionLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your section:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Section<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to SectionLayouts<\/codeVoice>, to provide easier access to your layout-specific SectionLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 54,
+        "key.doc.name" : "SectionLayouts",
+        "key.doc.type" : "Class",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayouts<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 325,
+        "key.name" : "SectionLayouts",
+        "key.namelength" : 14,
+        "key.nameoffset" : 19514,
+        "key.offset" : 19504,
+        "key.parsed_declaration" : "extension SectionLayouts",
+        "key.parsed_scope.end" : 393,
+        "key.parsed_scope.start" : 386,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public var table: TableAppearance<\/Type>.SectionLayout<\/Type> { get set }<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 19646
+              }
+            ],
+            "key.bodylength" : 130,
+            "key.bodyoffset" : 19696,
+            "key.doc.column" : 16,
+            "key.doc.comment" : "Allows customization of a `Section`'s layout when it is presented within a `.table` style layout.",
+            "key.doc.declaration" : "public var table: TableAppearance.SectionLayout { get set }",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.doc.full_as_xml" : "table<\/Name>s:10ListableUI14SectionLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp<\/USR>public var table: TableAppearance.SectionLayout { get set }<\/Declaration>Allows customization of a Section<\/codeVoice>’s layout when it is presented within a .table<\/codeVoice> style layout.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 389,
+            "key.doc.name" : "table",
+            "key.doc.type" : "Other",
+            "key.doclength" : 102,
+            "key.docoffset" : 19540,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> table<\/decl.name>: TableAppearance<\/ref.struct>.SectionLayout<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 174,
+            "key.name" : "table",
+            "key.namelength" : 5,
+            "key.nameoffset" : 19657,
+            "key.offset" : 19653,
+            "key.parsed_declaration" : "public var table : TableAppearance.SectionLayout",
+            "key.parsed_scope.end" : 392,
+            "key.parsed_scope.start" : 389,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "TableAppearance.SectionLayout",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceV13SectionLayoutVD",
+            "key.usr" : "s:10ListableUI14SectionLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp"
+          }
+        ],
+        "key.typename" : "SectionLayouts.Type",
+        "key.typeusr" : "$s10ListableUI14SectionLayoutsVmD",
+        "key.usr" : "s:10ListableUI14SectionLayoutsV"
       },
       {
         "key.accessibility" : "source.lang.swift.accessibility.internal",
-        "key.annotated_decl" : "final class PagedListLayout : ListLayout<\/Type><\/Declaration>",
+        "key.annotated_decl" : "final class TableListLayout : ListLayout<\/Type><\/Declaration>",
         "key.attributes" : [
           {
             "key.attribute" : "source.decl.attribute.final",
             "key.length" : 5,
-            "key.offset" : 3702
+            "key.offset" : 19832
           }
         ],
-        "key.bodylength" : 2575,
-        "key.bodyoffset" : 3744,
+        "key.bodylength" : 13481,
+        "key.bodyoffset" : 19874,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 10,
-            "key.offset" : 3732
+            "key.offset" : 19862
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-        "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> PagedListLayout<\/decl.name> : ListLayout<\/ref.protocol><\/decl.class>",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+        "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> TableListLayout<\/decl.name> : ListLayout<\/ref.protocol><\/decl.class>",
         "key.inheritedtypes" : [
           {
             "key.name" : "ListLayout"
           }
         ],
         "key.kind" : "source.lang.swift.decl.class",
-        "key.length" : 2612,
-        "key.name" : "PagedListLayout",
+        "key.length" : 13518,
+        "key.name" : "TableListLayout",
         "key.namelength" : 15,
-        "key.nameoffset" : 3714,
-        "key.offset" : 3708,
-        "key.parsed_declaration" : "final class PagedListLayout : ListLayout",
-        "key.parsed_scope.end" : 184,
-        "key.parsed_scope.start" : 102,
+        "key.nameoffset" : 19844,
+        "key.offset" : 19838,
+        "key.parsed_declaration" : "final class TableListLayout : ListLayout",
+        "key.parsed_scope.end" : 751,
+        "key.parsed_scope.start" : 396,
         "key.substructure" : [
           {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public typealias PagedListLayout<\/Type>.LayoutAppearance = PagedAppearance<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 3749
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> PagedListLayout<\/ref.class>.LayoutAppearance<\/decl.name> = PagedAppearance<\/ref.struct><\/decl.typealias>",
+            "key.accessibility" : "source.lang.swift.accessibility.internal",
+            "key.annotated_decl" : "typealias TableListLayout<\/Type>.LayoutAppearance = TableAppearance<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> TableListLayout<\/ref.class>.LayoutAppearance<\/decl.name> = TableAppearance<\/ref.struct><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 44,
             "key.name" : "LayoutAppearance",
             "key.namelength" : 16,
-            "key.nameoffset" : 3766,
-            "key.offset" : 3756,
+            "key.nameoffset" : 19889,
+            "key.offset" : 19879,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI10ListLayoutP0D10AppearanceQa"
               }
             ],
-            "key.parsed_declaration" : "public typealias LayoutAppearance = PagedAppearance",
-            "key.parsed_scope.end" : 104,
-            "key.parsed_scope.start" : 104,
-            "key.typename" : "PagedAppearance.Type",
-            "key.typeusr" : "$s10ListableUI15PagedAppearanceVmD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC0E10Appearancea"
+            "key.parsed_declaration" : "typealias LayoutAppearance = TableAppearance",
+            "key.parsed_scope.end" : 398,
+            "key.parsed_scope.start" : 398,
+            "key.typename" : "TableAppearance.Type",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceVmD",
+            "key.usr" : "s:10ListableUI15TableListLayoutC0E10Appearancea"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "static var defaults: ListLayoutDefaults<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 62,
-            "key.bodyoffset" : 3851,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.bodylength" : 56,
+            "key.bodyoffset" : 19974,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaults<\/decl.name>: ListLayoutDefaults<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
-            "key.length" : 104,
+            "key.length" : 98,
             "key.name" : "defaults",
             "key.namelength" : 8,
-            "key.nameoffset" : 3821,
-            "key.offset" : 3810,
+            "key.nameoffset" : 19944,
+            "key.offset" : 19933,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ"
               }
             ],
             "key.parsed_declaration" : "static var defaults: ListLayoutDefaults",
-            "key.parsed_scope.end" : 108,
-            "key.parsed_scope.start" : 106,
+            "key.parsed_scope.end" : 402,
+            "key.parsed_scope.start" : 400,
             "key.typename" : "ListLayoutDefaults",
             "key.typeusr" : "$s10ListableUI18ListLayoutDefaultsVD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC8defaultsAA0dE8DefaultsVvpZ"
+            "key.usr" : "s:10ListableUI15TableListLayoutC8defaultsAA0dE8DefaultsVvpZ"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "var layoutAppearance: PagedAppearance<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: PagedAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.annotated_decl" : "var layoutAppearance: TableAppearance<\/Type><\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> layoutAppearance<\/decl.name>: TableAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 37,
             "key.name" : "layoutAppearance",
             "key.namelength" : 16,
-            "key.nameoffset" : 3928,
-            "key.offset" : 3924,
+            "key.nameoffset" : 20045,
+            "key.offset" : 20041,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp"
               }
             ],
-            "key.parsed_declaration" : "var layoutAppearance: PagedAppearance",
-            "key.parsed_scope.end" : 110,
-            "key.parsed_scope.start" : 110,
+            "key.parsed_declaration" : "var layoutAppearance: TableAppearance",
+            "key.parsed_scope.end" : 404,
+            "key.parsed_scope.start" : 404,
             "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
-            "key.typename" : "PagedAppearance",
-            "key.typeusr" : "$s10ListableUI15PagedAppearanceVD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC16layoutAppearanceAA0cG0Vvp"
+            "key.typename" : "TableAppearance",
+            "key.typeusr" : "$s10ListableUI15TableAppearanceVD",
+            "key.usr" : "s:10ListableUI15TableListLayoutC16layoutAppearanceAA0cG0Vvp"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 23,
+            "key.name" : "MARK: Public Properties",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 20098
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let appearance: Appearance<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 26,
+            "key.length" : 27,
             "key.name" : "appearance",
             "key.namelength" : 10,
-            "key.nameoffset" : 3975,
-            "key.offset" : 3971,
+            "key.nameoffset" : 20142,
+            "key.offset" : 20138,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp"
               }
             ],
-            "key.parsed_declaration" : "let appearance: Appearance",
-            "key.parsed_scope.end" : 112,
-            "key.parsed_scope.start" : 112,
+            "key.parsed_declaration" : "let appearance : Appearance",
+            "key.parsed_scope.end" : 410,
+            "key.parsed_scope.start" : 410,
             "key.typename" : "Appearance",
             "key.typeusr" : "$s10ListableUI10AppearanceVD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC10appearanceAA10AppearanceVvp"
+            "key.usr" : "s:10ListableUI15TableListLayoutC10appearanceAA10AppearanceVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let behavior: Behavior<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 22,
+            "key.length" : 23,
             "key.name" : "behavior",
             "key.namelength" : 8,
-            "key.nameoffset" : 4006,
-            "key.offset" : 4002,
+            "key.nameoffset" : 20174,
+            "key.offset" : 20170,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp"
               }
             ],
-            "key.parsed_declaration" : "let behavior: Behavior",
-            "key.parsed_scope.end" : 113,
-            "key.parsed_scope.start" : 113,
+            "key.parsed_declaration" : "let behavior : Behavior",
+            "key.parsed_scope.end" : 411,
+            "key.parsed_scope.start" : 411,
             "key.typename" : "Behavior",
             "key.typeusr" : "$s10ListableUI8BehaviorVD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC8behaviorAA8BehaviorVvp"
+            "key.usr" : "s:10ListableUI15TableListLayoutC8behaviorAA8BehaviorVvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let content: ListLayoutContent<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> content<\/decl.name>: ListLayoutContent<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 30,
+            "key.length" : 31,
             "key.name" : "content",
             "key.namelength" : 7,
-            "key.nameoffset" : 4033,
-            "key.offset" : 4029,
+            "key.nameoffset" : 20207,
+            "key.offset" : 20203,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp"
               }
             ],
-            "key.parsed_declaration" : "let content: ListLayoutContent",
-            "key.parsed_scope.end" : 114,
-            "key.parsed_scope.start" : 114,
+            "key.parsed_declaration" : "let content : ListLayoutContent",
+            "key.parsed_scope.end" : 413,
+            "key.parsed_scope.start" : 413,
             "key.typename" : "ListLayoutContent",
             "key.typeusr" : "$s10ListableUI17ListLayoutContentCD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC7contentAA0dE7ContentCvp"
+            "key.usr" : "s:10ListableUI15TableListLayoutC7contentAA0dE7ContentCvp"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var scrollViewProperties: ListLayoutScrollViewProperties<\/Type> { get }<\/Declaration>",
-            "key.bodylength" : 415,
-            "key.bodyoffset" : 4135,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.bodylength" : 303,
+            "key.bodyoffset" : 20310,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> scrollViewProperties<\/decl.name>: ListLayoutScrollViewProperties<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 474,
+            "key.length" : 362,
             "key.name" : "scrollViewProperties",
             "key.namelength" : 20,
-            "key.nameoffset" : 4081,
-            "key.offset" : 4077,
+            "key.nameoffset" : 20256,
+            "key.offset" : 20252,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp"
               }
             ],
             "key.parsed_declaration" : "var scrollViewProperties: ListLayoutScrollViewProperties",
-            "key.parsed_scope.end" : 125,
-            "key.parsed_scope.start" : 116,
+            "key.parsed_scope.end" : 424,
+            "key.parsed_scope.start" : 415,
             "key.typename" : "ListLayoutScrollViewProperties",
             "key.typeusr" : "$s10ListableUI30ListLayoutScrollViewPropertiesVD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC20scrollViewPropertiesAA0de6ScrollgH0Vvp"
+            "key.usr" : "s:10ListableUI15TableListLayoutC20scrollViewPropertiesAA0de6ScrollgH0Vvp"
           },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -48318,35 +50053,35 @@
             "key.name" : "MARK: Initialization",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 4571
+            "key.offset" : 20638
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "init(layoutAppearance: PagedAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>",
-            "key.bodylength" : 172,
-            "key.bodyoffset" : 4759,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: PagedAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.annotated_decl" : "init(layoutAppearance: LayoutAppearance<\/Type>, appearance: Appearance<\/Type>, behavior: Behavior<\/Type>, content: ListLayoutContent<\/Type>)<\/Declaration>",
+            "key.bodylength" : 164,
+            "key.bodyoffset" : 20831,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layoutAppearance<\/decl.var.parameter.argument_label>: LayoutAppearance<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: ListLayoutContent<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 324,
+            "key.length" : 321,
             "key.name" : "init(layoutAppearance:appearance:behavior:content:)",
-            "key.namelength" : 149,
-            "key.nameoffset" : 4608,
-            "key.offset" : 4608,
+            "key.namelength" : 154,
+            "key.nameoffset" : 20675,
+            "key.offset" : 20675,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc"
               }
             ],
-            "key.parsed_declaration" : "init(\n    layoutAppearance: PagedAppearance,\n    appearance: Appearance,\n    behavior: Behavior,\n    content: ListLayoutContent\n)",
-            "key.parsed_scope.end" : 142,
-            "key.parsed_scope.start" : 131,
+            "key.parsed_declaration" : "init(\n    layoutAppearance : LayoutAppearance,\n    appearance : Appearance,\n    behavior : Behavior,\n    content : ListLayoutContent\n)",
+            "key.parsed_scope.end" : 441,
+            "key.parsed_scope.start" : 430,
             "key.substructure" : [
 
             ],
-            "key.typename" : "(PagedListLayout.Type) -> (PagedAppearance, Appearance, Behavior, ListLayoutContent) -> PagedListLayout",
-            "key.typeusr" : "$s16layoutAppearance10appearance8behavior7content10ListableUI15PagedListLayoutCAE0hB0V_AE0B0VAE8BehaviorVAE0iJ7ContentCtcD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC16layoutAppearance10appearance8behavior7contentAcA0cG0V_AA0G0VAA8BehaviorVAA0dE7ContentCtcfc"
+            "key.typename" : "(TableListLayout.Type) -> (TableAppearance, Appearance, Behavior, ListLayoutContent) -> TableListLayout",
+            "key.typeusr" : "$s16layoutAppearance10appearance8behavior7content10ListableUI15TableListLayoutCAE0hB0V_AE0B0VAE8BehaviorVAE0iJ7ContentCtcD",
+            "key.usr" : "s:10ListableUI15TableListLayoutC16layoutAppearance10appearance8behavior7contentAcA0cG0V_AA0G0VAA8BehaviorVAA0dE7ContentCtcfc"
           },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -48354,349 +50089,625 @@
             "key.name" : "MARK: Performing Layouts",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 4952
+            "key.offset" : 21016
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func updateLayout(in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.bodylength" : 32,
-            "key.bodyoffset" : 5054,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.bodylength" : 14,
+            "key.bodyoffset" : 21118,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateLayout<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 94,
+            "key.length" : 76,
             "key.name" : "updateLayout(in:)",
             "key.namelength" : 50,
-            "key.nameoffset" : 4998,
-            "key.offset" : 4993,
+            "key.nameoffset" : 21062,
+            "key.offset" : 21057,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF"
               }
             ],
             "key.parsed_declaration" : "func updateLayout(in collectionView : UICollectionView)",
-            "key.parsed_scope.end" : 151,
-            "key.parsed_scope.start" : 148,
+            "key.parsed_scope.end" : 450,
+            "key.parsed_scope.start" : 447,
             "key.substructure" : [
 
             ],
-            "key.typename" : "(PagedListLayout) -> (UICollectionView) -> ()",
+            "key.typename" : "(TableListLayout) -> (UICollectionView) -> ()",
             "key.typeusr" : "$s2inySo16UICollectionViewC_tcD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC06updateE02inySo16UICollectionViewC_tF"
+            "key.usr" : "s:10ListableUI15TableListLayoutC06updateE02inySo16UICollectionViewC_tF"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func layout(delegate: CollectionViewLayoutDelegate<\/Type>, in collectionView: UICollectionView<\/Type>)<\/Declaration>",
-            "key.bodylength" : 1104,
-            "key.bodyoffset" : 5213,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+            "key.bodylength" : 11916,
+            "key.bodyoffset" : 21257,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> layout<\/decl.name>(delegate<\/decl.var.parameter.argument_label>: CollectionViewLayoutDelegate<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 1221,
+            "key.length" : 12031,
             "key.name" : "layout(delegate:in:)",
-            "key.namelength" : 109,
-            "key.nameoffset" : 5102,
-            "key.offset" : 5097,
+            "key.namelength" : 107,
+            "key.nameoffset" : 21148,
+            "key.offset" : 21143,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
               }
             ],
-            "key.parsed_declaration" : "func layout(\n    delegate : CollectionViewLayoutDelegate,\n    in collectionView : UICollectionView  \n)",
-            "key.parsed_scope.end" : 183,
-            "key.parsed_scope.start" : 153,
+            "key.parsed_declaration" : "func layout(\n    delegate : CollectionViewLayoutDelegate,\n    in collectionView : UICollectionView\n)",
+            "key.parsed_scope.end" : 743,
+            "key.parsed_scope.start" : 452,
             "key.substructure" : [
+              {
+                "key.annotated_decl" : "let layout: TableAppearance<\/Type>.Layout<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layout<\/decl.name>: TableAppearance<\/ref.struct>.Layout<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 41,
+                "key.name" : "layout",
+                "key.namelength" : 6,
+                "key.nameoffset" : 21270,
+                "key.offset" : 21266,
+                "key.parsed_declaration" : "let layout = self.layoutAppearance.layout",
+                "key.parsed_scope.end" : 456,
+                "key.parsed_scope.start" : 456,
+                "key.related_decls" : [
+                  {
+                    "key.annotated_decl" : "layout(delegate:in:)<\/RelatedName>"
+                  }
+                ],
+                "key.typename" : "TableAppearance.Layout",
+                "key.typeusr" : "$s10ListableUI15TableAppearanceV6LayoutVD",
+                "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtFADL_AA0C10AppearanceV0E0Vvp"
+              },
+              {
+                "key.annotated_decl" : "let sizing: TableAppearance<\/Type>.Sizing<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sizing<\/decl.name>: TableAppearance<\/ref.struct>.Sizing<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 41,
+                "key.name" : "sizing",
+                "key.namelength" : 6,
+                "key.nameoffset" : 21320,
+                "key.offset" : 21316,
+                "key.parsed_declaration" : "let sizing = self.layoutAppearance.sizing",
+                "key.parsed_scope.end" : 457,
+                "key.parsed_scope.start" : 457,
+                "key.typename" : "TableAppearance.Sizing",
+                "key.typeusr" : "$s10ListableUI15TableAppearanceV6SizingVD",
+                "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF6sizingL_AA0C10AppearanceV6SizingVvp"
+              },
               {
                 "key.annotated_decl" : "let viewSize: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 100,
+                "key.length" : 41,
                 "key.name" : "viewSize",
                 "key.namelength" : 8,
-                "key.nameoffset" : 5226,
-                "key.offset" : 5222,
-                "key.parsed_declaration" : "let viewSize = self.layoutAppearance.pagingSize.size(for: collectionView, direction: self.direction)",
-                "key.parsed_scope.end" : 157,
-                "key.parsed_scope.start" : 157,
+                "key.nameoffset" : 21379,
+                "key.offset" : 21375,
+                "key.parsed_declaration" : "let viewSize = collectionView.bounds.size",
+                "key.parsed_scope.end" : 459,
+                "key.parsed_scope.start" : 459,
                 "key.typename" : "CGSize",
                 "key.typeusr" : "$sSo6CGSizeVD",
-                "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF8viewSizeL_So6CGSizeVvp"
+                "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF8viewSizeL_So6CGSizeVvp"
               },
               {
-                "key.annotated_decl" : "var lastMaxY: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/Paged\/PagedListLayout.swift",
-                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastMaxY<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.annotated_decl" : "let viewWidth: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 28,
-                "key.name" : "lastMaxY",
-                "key.namelength" : 8,
-                "key.nameoffset" : 5344,
-                "key.offset" : 5340,
-                "key.parsed_declaration" : "var lastMaxY : CGFloat = 0.0",
-                "key.parsed_scope.end" : 159,
-                "key.parsed_scope.start" : 159,
+                "key.length" : 43,
+                "key.name" : "viewWidth",
+                "key.namelength" : 9,
+                "key.nameoffset" : 21438,
+                "key.offset" : 21434,
+                "key.parsed_declaration" : "let viewWidth = collectionView.bounds.width",
+                "key.parsed_scope.end" : 461,
+                "key.parsed_scope.start" : 461,
                 "key.typename" : "CGFloat",
                 "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF8lastMaxYL_12CoreGraphics7CGFloatVvp"
+                "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF9viewWidthL_12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.annotated_decl" : "let rootWidth: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rootWidth<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 222,
+                "key.name" : "rootWidth",
+                "key.namelength" : 9,
+                "key.nameoffset" : 21499,
+                "key.offset" : 21495,
+                "key.parsed_declaration" : "let rootWidth = TableAppearance.Layout.width(\n    with: viewSize.width,\n    padding: HorizontalPadding(left: layout.padding.left, right: layout.padding.right),\n    constraint: layout.width\n)",
+                "key.parsed_scope.end" : 463,
+                "key.parsed_scope.start" : 463,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF9rootWidthL_12CoreGraphics7CGFloatVvp"
+              },
+              {
+                "key.annotated_decl" : "var lastContentMaxY: CGFloat<\/Type><\/Declaration>",
+                "key.doc.comment" : "Item positions are set and sent to the delegate first,\nin case the position affects the height calculation later in the layout pass.",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastContentMaxY<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 35,
+                "key.name" : "lastContentMaxY",
+                "key.namelength" : 15,
+                "key.nameoffset" : 22167,
+                "key.offset" : 22163,
+                "key.parsed_declaration" : "var lastContentMaxY : CGFloat = 0.0",
+                "key.parsed_scope.end" : 485,
+                "key.parsed_scope.start" : 485,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF15lastContentMaxYL_12CoreGraphics7CGFloatVvp"
               }
             ],
-            "key.typename" : "(PagedListLayout) -> (CollectionViewLayoutDelegate, UICollectionView) -> ()",
+            "key.typename" : "(TableListLayout) -> (CollectionViewLayoutDelegate, UICollectionView) -> ()",
             "key.typeusr" : "$s8delegate2iny10ListableUI28CollectionViewLayoutDelegate_p_So012UICollectionF0CtcD",
-            "key.usr" : "s:10ListableUI15PagedListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
+            "key.usr" : "s:10ListableUI15TableListLayoutC6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.private",
+            "key.annotated_decl" : "private func setItemPositions()<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.private",
+                "key.length" : 7,
+                "key.offset" : 33184
+              }
+            ],
+            "key.bodylength" : 132,
+            "key.bodyoffset" : 33221,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setItemPositions<\/decl.name>()<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 162,
+            "key.name" : "setItemPositions()",
+            "key.namelength" : 18,
+            "key.nameoffset" : 33197,
+            "key.offset" : 33192,
+            "key.parsed_declaration" : "private func setItemPositions()",
+            "key.parsed_scope.end" : 750,
+            "key.parsed_scope.start" : 745,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(TableListLayout) -> () -> ()",
+            "key.typeusr" : "$syycD",
+            "key.usr" : "s:10ListableUI15TableListLayoutC16setItemPositions33_E71D3D96C42690D19F7CD02522C562C9LLyyF"
           }
         ],
-        "key.typename" : "PagedListLayout.Type",
-        "key.typeusr" : "$s10ListableUI15PagedListLayoutCmD",
-        "key.usr" : "s:10ListableUI15PagedListLayoutC"
-      }
-    ]
-  }
-}, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift" : {
-    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 887,
-    "key.offset" : 0,
-    "key.substructure" : [
+        "key.typename" : "TableListLayout.Type",
+        "key.typeusr" : "$s10ListableUI15TableListLayoutCmD",
+        "key.usr" : "s:10ListableUI15TableListLayoutC"
+      },
       {
-        "key.accessibility" : "source.lang.swift.accessibility.internal",
-        "key.annotated_decl" : "enum SupplementaryKind : String<\/Type>, CaseIterable<\/Type><\/Declaration>",
-        "key.bodylength" : 724,
-        "key.bodyoffset" : 161,
-        "key.elements" : [
+        "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
+        "key.annotated_decl" : "final class SectionInfo<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.fileprivate",
+            "key.length" : 11,
+            "key.offset" : 33359
+          }
+        ],
+        "key.bodylength" : 2164,
+        "key.bodyoffset" : 33412,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/ListLayout\/ListLayoutContent.swift",
+        "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SectionInfo<\/decl.name><\/decl.class>",
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 2206,
+        "key.name" : "ListLayoutContent.SectionInfo",
+        "key.namelength" : 29,
+        "key.nameoffset" : 33381,
+        "key.offset" : 33371,
+        "key.parsed_declaration" : "fileprivate extension ListLayoutContent.SectionInfo",
+        "key.parsed_scope.end" : 817,
+        "key.parsed_scope.start" : 754,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
+            "key.annotated_decl" : "func setItemPositions(with appearance: TableAppearance<\/Type>)<\/Declaration>",
+            "key.bodylength" : 1202,
+            "key.bodyoffset" : 33479,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> setItemPositions<\/decl.name>(with<\/decl.var.parameter.argument_label> appearance<\/decl.var.parameter.name>: TableAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 1265,
+            "key.name" : "setItemPositions(with:)",
+            "key.namelength" : 51,
+            "key.nameoffset" : 33422,
+            "key.offset" : 33417,
+            "key.parsed_declaration" : "func setItemPositions(with appearance : TableAppearance)",
+            "key.parsed_scope.end" : 789,
+            "key.parsed_scope.start" : 756,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(ListLayoutContent.SectionInfo) -> (TableAppearance) -> ()",
+            "key.typeusr" : "$s4withy10ListableUI15TableAppearanceV_tcD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC16setItemPositions33_E71D3D96C42690D19F7CD02522C562C9LL4withyAA15TableAppearanceV_tF"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.private",
+            "key.annotated_decl" : "private static func grouped(items: [ListLayoutContent<\/Type>.ItemInfo<\/Type>], groupingHeight: CGFloat<\/Type>, appearance: TableAppearance<\/Type>) -> [[ListLayoutContent<\/Type>.ItemInfo<\/Type>]]<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.private",
+                "key.length" : 7,
+                "key.offset" : 34692
+              }
+            ],
+            "key.bodylength" : 721,
+            "key.bodyoffset" : 34853,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> grouped<\/decl.name>(items<\/decl.var.parameter.argument_label>: [ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]<\/decl.var.parameter.type><\/decl.var.parameter>, groupingHeight<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: TableAppearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [[ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]]<\/decl.function.returntype><\/decl.function.method.static>",
+            "key.kind" : "source.lang.swift.decl.function.method.static",
+            "key.length" : 875,
+            "key.name" : "grouped(items:groupingHeight:appearance:)",
+            "key.namelength" : 101,
+            "key.nameoffset" : 34712,
+            "key.offset" : 34700,
+            "key.parsed_declaration" : "private static func grouped(items : [ListLayoutContent.ItemInfo], groupingHeight : CGFloat, appearance : TableAppearance) -> [[ListLayoutContent.ItemInfo]]",
+            "key.parsed_scope.end" : 816,
+            "key.parsed_scope.start" : 791,
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "var all: [[ListLayoutContent<\/Type>.ItemInfo<\/Type>]]<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> all<\/decl.name>: [[ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]]<\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 42,
+                "key.name" : "all",
+                "key.namelength" : 3,
+                "key.nameoffset" : 34866,
+                "key.offset" : 34862,
+                "key.parsed_declaration" : "var all = [[ListLayoutContent.ItemInfo]]()",
+                "key.parsed_scope.end" : 793,
+                "key.parsed_scope.start" : 793,
+                "key.related_decls" : [
+                  {
+                    "key.annotated_decl" : "all<\/RelatedName>"
+                  }
+                ],
+                "key.typename" : "[[ListLayoutContent.ItemInfo]]",
+                "key.typeusr" : "$sSaySay10ListableUI17ListLayoutContentC8ItemInfoCGGD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_E71D3D96C42690D19F7CD02522C562C9LL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_12CoreGraphics7CGFloatVAA15TableAppearanceVtFZ3allL_ANvp"
+              },
+              {
+                "key.annotated_decl" : "var current: [ListLayoutContent<\/Type>.ItemInfo<\/Type>]<\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> current<\/decl.name>: [ListLayoutContent<\/ref.class>.ItemInfo<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 44,
+                "key.name" : "current",
+                "key.namelength" : 7,
+                "key.nameoffset" : 34917,
+                "key.offset" : 34913,
+                "key.parsed_declaration" : "var current = [ListLayoutContent.ItemInfo]()",
+                "key.parsed_scope.end" : 794,
+                "key.parsed_scope.start" : 794,
+                "key.typename" : "[ListLayoutContent.ItemInfo]",
+                "key.typeusr" : "$sSay10ListableUI17ListLayoutContentC8ItemInfoCGD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_E71D3D96C42690D19F7CD02522C562C9LL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_12CoreGraphics7CGFloatVAA15TableAppearanceVtFZ7currentL_AMvp"
+              },
+              {
+                "key.annotated_decl" : "var lastSpacing: CGFloat<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lastSpacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 31,
+                "key.name" : "lastSpacing",
+                "key.namelength" : 11,
+                "key.nameoffset" : 34979,
+                "key.offset" : 34975,
+                "key.parsed_declaration" : "var lastSpacing : CGFloat = 0.0",
+                "key.parsed_scope.end" : 796,
+                "key.parsed_scope.start" : 796,
+                "key.typename" : "CGFloat",
+                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
+                "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_E71D3D96C42690D19F7CD02522C562C9LL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_12CoreGraphics7CGFloatVAA15TableAppearanceVtFZ11lastSpacingL_AQvp"
+              }
+            ],
+            "key.typename" : "(ListLayoutContent.SectionInfo.Type) -> ([ListLayoutContent.ItemInfo], CGFloat, TableAppearance) -> [[ListLayoutContent.ItemInfo]]",
+            "key.typeusr" : "$s5items14groupingHeight10appearanceSaySay10ListableUI17ListLayoutContentC8ItemInfoCGGAI_12CoreGraphics7CGFloatVAD15TableAppearanceVtcD",
+            "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC7grouped33_E71D3D96C42690D19F7CD02522C562C9LL5items14groupingHeight10appearanceSaySayAC04ItemG0CGGAM_12CoreGraphics7CGFloatVAA15TableAppearanceVtFZ"
+          }
+        ],
+        "key.typename" : "ListLayoutContent.SectionInfo.Type",
+        "key.typeusr" : "$s10ListableUI17ListLayoutContentC11SectionInfoCmD",
+        "key.usr" : "s:10ListableUI17ListLayoutContentC11SectionInfoC"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
+        "key.annotated_decl" : "@frozen struct Array<Element> : _DestructorSafeContainer<\/Type><\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.fileprivate",
+            "key.length" : 11,
+            "key.offset" : 35580
+          }
+        ],
+        "key.bodylength" : 250,
+        "key.bodyoffset" : 35609,
+        "key.doc.declaration" : "@frozen struct Array",
+        "key.doc.discussion" : [
+          {
+            "Para" : "Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the `Array` type to hold elements of a single type, the array’s `Element` type. An array can store any kind of elements—from integers to strings to classes."
+          },
+          {
+            "Para" : "Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s `Element` type. For example:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "You can create an empty array by specifying the `Element` type of your array in the declaration. For example:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "If you need an array that is preinitialized with a fixed number of default values, use the `Array(repeating:count:)` initializer."
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "When you need to perform an operation on all of an array’s elements, use a `for`-`in` loop to iterate through the array’s contents."
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "Use the `isEmpty` property to check quickly whether an array has any elements, or use the `count` property to find the number of elements in the array."
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "Use the `first` and `last` properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are `nil`."
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than `count` triggers a runtime error. For example:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class."
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "To add single elements to the end of an array, use the `append(_:)` method. Add multiple elements at the same time by passing another array or a sequence of any kind to the `append(contentsOf:)` method."
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "You can add new elements in the middle of an array by using the `insert(_:at:)` method for single elements and by using `insert(contentsOf:at:)` to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room."
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "To remove elements from an array, use the `remove(at:)`, `removeSubrange(_:)`, and `removeLast()` methods."
+          },
+          {
+            "CodeListing" : ""
+          },
           {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 6,
-            "key.offset" : 139
+            "Para" : "You can replace an existing element with a new value by assigning the new value to the subscript."
           },
           {
-            "key.kind" : "source.lang.swift.structure.elem.typeref",
-            "key.length" : 12,
-            "key.offset" : 147
-          }
-        ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
-        "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> SupplementaryKind<\/decl.name> : String<\/ref.struct>, CaseIterable<\/ref.protocol><\/decl.enum>",
-        "key.inheritedtypes" : [
+            "CodeListing" : ""
+          },
           {
-            "key.name" : "String"
+            "Para" : "Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger."
           },
           {
-            "key.name" : "CaseIterable"
-          }
-        ],
-        "key.kind" : "source.lang.swift.decl.enum",
-        "key.length" : 772,
-        "key.name" : "SupplementaryKind",
-        "key.namelength" : 17,
-        "key.nameoffset" : 119,
-        "key.offset" : 114,
-        "key.parsed_declaration" : "enum SupplementaryKind : String, CaseIterable",
-        "key.parsed_scope.end" : 33,
-        "key.parsed_scope.start" : 11,
-        "key.substructure" : [
+            "Para" : "If you know approximately how many elements you will need to store, use the `reserveCapacity(_:)` method before appending to the array to avoid intermediate reallocations. Use the `capacity` and `count` properties to determine how many more elements the array can store without allocating larger storage."
+          },
           {
-            "key.kind" : "source.lang.swift.decl.enumcase",
-            "key.length" : 39,
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 166,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "case listHeader = "Listable.ListHeader"<\/Declaration>",
-                "key.elements" : [
-                  {
-                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
-                    "key.length" : 21,
-                    "key.offset" : 184
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
-                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listHeader<\/decl.name> = "Listable.ListHeader"<\/syntaxtype.string><\/decl.enumelement>",
-                "key.kind" : "source.lang.swift.decl.enumelement",
-                "key.length" : 34,
-                "key.name" : "listHeader",
-                "key.namelength" : 10,
-                "key.nameoffset" : 171,
-                "key.offset" : 171,
-                "key.parsed_declaration" : "case listHeader = \"Listable.ListHeader\"",
-                "key.parsed_scope.end" : 13,
-                "key.parsed_scope.start" : 13,
-                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
-                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
-                "key.usr" : "s:10ListableUI17SupplementaryKindO10listHeaderyA2CmF"
-              }
-            ]
+            "Para" : "For arrays of most `Element` types, this storage is a contiguous block of memory. For arrays with an `Element` type that is a class or `@objc` protocol type, this storage can be a contiguous block of memory or an instance of `NSArray`. Because any arbitrary subclass of `NSArray` can become an `Array`, there are no guarantees about representation or efficiency in this case."
           },
           {
-            "key.kind" : "source.lang.swift.decl.enumcase",
-            "key.length" : 39,
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 210,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "case listFooter = "Listable.ListFooter"<\/Declaration>",
-                "key.elements" : [
-                  {
-                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
-                    "key.length" : 21,
-                    "key.offset" : 228
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
-                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> listFooter<\/decl.name> = "Listable.ListFooter"<\/syntaxtype.string><\/decl.enumelement>",
-                "key.kind" : "source.lang.swift.decl.enumelement",
-                "key.length" : 34,
-                "key.name" : "listFooter",
-                "key.namelength" : 10,
-                "key.nameoffset" : 215,
-                "key.offset" : 215,
-                "key.parsed_declaration" : "case listFooter = \"Listable.ListFooter\"",
-                "key.parsed_scope.end" : 14,
-                "key.parsed_scope.start" : 14,
-                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
-                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
-                "key.usr" : "s:10ListableUI17SupplementaryKindO10listFooteryA2CmF"
-              }
-            ]
+            "Para" : "Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:"
           },
           {
-            "key.kind" : "source.lang.swift.decl.enumcase",
-            "key.length" : 45,
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 259,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "case sectionHeader = "Listable.SectionHeader"<\/Declaration>",
-                "key.elements" : [
-                  {
-                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
-                    "key.length" : 24,
-                    "key.offset" : 280
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
-                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionHeader<\/decl.name> = "Listable.SectionHeader"<\/syntaxtype.string><\/decl.enumelement>",
-                "key.kind" : "source.lang.swift.decl.enumelement",
-                "key.length" : 40,
-                "key.name" : "sectionHeader",
-                "key.namelength" : 13,
-                "key.nameoffset" : 264,
-                "key.offset" : 264,
-                "key.parsed_declaration" : "case sectionHeader = \"Listable.SectionHeader\"",
-                "key.parsed_scope.end" : 16,
-                "key.parsed_scope.start" : 16,
-                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
-                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
-                "key.usr" : "s:10ListableUI17SupplementaryKindO13sectionHeaderyA2CmF"
-              }
-            ]
+            "CodeListing" : ""
           },
           {
-            "key.kind" : "source.lang.swift.decl.enumcase",
-            "key.length" : 45,
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 309,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "case sectionFooter = "Listable.SectionFooter"<\/Declaration>",
-                "key.elements" : [
-                  {
-                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
-                    "key.length" : 24,
-                    "key.offset" : 330
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
-                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> sectionFooter<\/decl.name> = "Listable.SectionFooter"<\/syntaxtype.string><\/decl.enumelement>",
-                "key.kind" : "source.lang.swift.decl.enumelement",
-                "key.length" : 40,
-                "key.name" : "sectionFooter",
-                "key.namelength" : 13,
-                "key.nameoffset" : 314,
-                "key.offset" : 314,
-                "key.parsed_declaration" : "case sectionFooter = \"Listable.SectionFooter\"",
-                "key.parsed_scope.end" : 17,
-                "key.parsed_scope.start" : 17,
-                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
-                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
-                "key.usr" : "s:10ListableUI17SupplementaryKindO13sectionFooteryA2CmF"
-              }
-            ]
+            "Para" : "If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:"
           },
           {
-            "key.kind" : "source.lang.swift.decl.enumcase",
-            "key.length" : 51,
-            "key.namelength" : 0,
-            "key.nameoffset" : 0,
-            "key.offset" : 364,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.internal",
-                "key.annotated_decl" : "case overscrollFooter = "Listable.OverscrollFooter"<\/Declaration>",
-                "key.elements" : [
-                  {
-                    "key.kind" : "source.lang.swift.structure.elem.init_expr",
-                    "key.length" : 27,
-                    "key.offset" : 388
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
-                "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> overscrollFooter<\/decl.name> = "Listable.OverscrollFooter"<\/syntaxtype.string><\/decl.enumelement>",
-                "key.kind" : "source.lang.swift.decl.enumelement",
-                "key.length" : 46,
-                "key.name" : "overscrollFooter",
-                "key.namelength" : 16,
-                "key.nameoffset" : 369,
-                "key.offset" : 369,
-                "key.parsed_declaration" : "case overscrollFooter = \"Listable.OverscrollFooter\"",
-                "key.parsed_scope.end" : 19,
-                "key.parsed_scope.start" : 19,
-                "key.typename" : "(SupplementaryKind.Type) -> SupplementaryKind",
-                "key.typeusr" : "$sy10ListableUI17SupplementaryKindOACmcD",
-                "key.usr" : "s:10ListableUI17SupplementaryKindO16overscrollFooteryA2CmF"
-              }
-            ]
+            "CodeListing" : ""
           },
           {
-            "key.accessibility" : "source.lang.swift.accessibility.internal",
-            "key.annotated_decl" : "func indexPath(in section: Int<\/Type>) -> IndexPath<\/Type><\/Declaration>",
-            "key.bodylength" : 407,
-            "key.bodyoffset" : 476,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Layout\/SupplementaryKind.swift",
-            "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> indexPath<\/decl.name>(in<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
+            "Para" : "Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying."
+          },
+          {
+            "Para" : "This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place."
+          },
+          {
+            "Para" : "In the example below, a `numbers` array is created along with two copies that share the same storage. When the original `numbers` array is modified, it makes a unique copy of its storage before making the modification. Further modifications to `numbers` are made in place, while the two copies continue to share the original storage."
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "When you need to access APIs that require data in an `NSArray` instance instead of `Array`, use the type-cast operator (`as`) to bridge your instance. For bridging to be possible, the `Element` type of your array must be a class, an `@objc` protocol (a protocol imported from Objective-C or marked with the `@objc` attribute), or a type that bridges to a Foundation type."
+          },
+          {
+            "Para" : "The following example shows how you can bridge an `Array` instance to `NSArray` to use the `write(to:atomically:)` method. In this example, the `colors` array can be bridged to `NSArray` because the `colors` array’s `String` elements bridge to `NSString`. The compiler prevents bridging the `moreColors` array, on the other hand, because its `Element` type is `Optional`, which does  bridge to a Foundation type."
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "Bridging from `Array` to `NSArray` takes O(1) time and O(1) space if the array’s elements are already instances of a class or an `@objc` protocol; otherwise, it takes O() time and space."
+          },
+          {
+            "Para" : "When the destination array’s element type is a class or an `@objc` protocol, bridging from `NSArray` to `Array` first calls the `copy(with:)` (`- copyWithZone:` in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of `NSArray` that are already immutable, `copy(with:)` usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If `copy(with:)` returns the same array, the instances of `NSArray` and `Array` share storage using the same copy-on-write optimization that is used when two instances of `Array` share storage."
+          },
+          {
+            "Para" : "When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from `NSArray` to `Array` performs a bridging copy of the elements to contiguous storage in O() time. For example, bridging from `NSArray` to `Array` performs such a copy. No further bridging is required when accessing elements of the `Array` instance."
+          },
+          {
+            "Note" : ""
+          }
+        ],
+        "key.doc.full_as_xml" : "Array<\/Name>s:Sa<\/USR>@frozen struct Array<Element><\/Declaration>An ordered, random-access collection.<\/Para><\/Abstract>Arrays are one of the most commonly used data types in an app. You use arrays to organize your app’s data. Specifically, you use the Array<\/codeVoice> type to hold elements of a single type, the array’s Element<\/codeVoice> type. An array can store any kind of elements—from integers to strings to classes.<\/Para>Swift makes it easy to create arrays in your code using an array literal: simply surround a comma-separated list of values with square brackets. Without any other information, Swift creates an array that includes the specified values, automatically inferring the array’s Element<\/codeVoice> type. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can create an empty array by specifying the Element<\/codeVoice> type of your array in the declaration. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered> = Array()]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If you need an array that is preinitialized with a fixed number of default values, use the Array(repeating:count:)<\/codeVoice> initializer.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Accessing Array Values]]><\/rawHTML>When you need to perform an operation on all of an array’s elements, use a for<\/codeVoice>-in<\/codeVoice> loop to iterate through the array’s contents.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the isEmpty<\/codeVoice> property to check quickly whether an array has any elements, or use the count<\/codeVoice> property to find the number of elements in the array.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Use the first<\/codeVoice> and last<\/codeVoice> properties for safe access to the value of the array’s first and last elements. If the array is empty, these properties are nil<\/codeVoice>.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can access individual array elements through a subscript. The first element of a nonempty array is always at index zero. You can subscript an array with any integer from zero up to, but not including, the count of the array. Using a negative number or an index equal to or greater than count<\/codeVoice> triggers a runtime error. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Adding and Removing Elements]]><\/rawHTML>Suppose you need to store a list of the names of students that are signed up for a class you’re teaching. During the registration period, you need to add and remove names as students add and drop the class.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To add single elements to the end of an array, use the append(_:)<\/codeVoice> method. Add multiple elements at the same time by passing another array or a sequence of any kind to the append(contentsOf:)<\/codeVoice> method.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can add new elements in the middle of an array by using the insert(_:at:)<\/codeVoice> method for single elements and by using insert(contentsOf:at:)<\/codeVoice> to insert multiple elements from another collection or array literal. The elements at that index and later indices are shifted back to make room.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>To remove elements from an array, use the remove(at:)<\/codeVoice>, removeSubrange(_:)<\/codeVoice>, and removeLast()<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can replace an existing element with a new value by assigning the new value to the subscript.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Growing the Size of an Array]]><\/rawHTML>Every array reserves a specific amount of memory to hold its contents. When you add elements to an array and that array begins to exceed its reserved capacity, the array allocates a larger region of memory and copies its elements into the new storage. The new storage is a multiple of the old storage’s size. This exponential growth strategy means that appending an element happens in constant time, averaging the performance of many append operations. Append operations that trigger reallocation have a performance cost, but they occur less and less often as the array grows larger.<\/Para>If you know approximately how many elements you will need to store, use the reserveCapacity(_:)<\/codeVoice> method before appending to the array to avoid intermediate reallocations. Use the capacity<\/codeVoice> and count<\/codeVoice> properties to determine how many more elements the array can store without allocating larger storage.<\/Para>For arrays of most Element<\/codeVoice> types, this storage is a contiguous block of memory. For arrays with an Element<\/codeVoice> type that is a class or @objc<\/codeVoice> protocol type, this storage can be a contiguous block of memory or an instance of NSArray<\/codeVoice>. Because any arbitrary subclass of NSArray<\/codeVoice> can become an Array<\/codeVoice>, there are no guarantees about representation or efficiency in this case.<\/Para>]]><\/rawHTML>Modifying Copies of Arrays]]><\/rawHTML>Each array has an independent value that includes the values of all of its elements. For simple types such as integers and other structures, this means that when you change a value in one array, the value of that element does not change in any copies of the array. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>If the elements in an array are instances of a class, the semantics are the same, though they might appear different at first. In this case, the values stored in the array are references to objects that live outside the array. If you change a reference to an object in one array, only that array has a reference to the new object. However, if two arrays contain references to the same object, you can observe changes to that object’s properties from both arrays. For example:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Arrays, like all variable-size collections in the standard library, use copy-on-write optimization. Multiple copies of an array share the same storage until you modify one of the copies. When that happens, the array being modified replaces its storage with a uniquely owned copy of itself, which is then modified in place. Optimizations are sometimes applied that can reduce the amount of copying.<\/Para>This means that if an array is sharing storage with other copies, the first mutating operation on that array incurs the cost of copying the array. An array that is the sole owner of its storage can perform mutating operations in place.<\/Para>In the example below, a numbers<\/codeVoice> array is created along with two copies that share the same storage. When the original numbers<\/codeVoice> array is modified, it makes a unique copy of its storage before making the modification. Further modifications to numbers<\/codeVoice> are made in place, while the two copies continue to share the original storage.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Bridging Between Array and NSArray]]><\/rawHTML>When you need to access APIs that require data in an NSArray<\/codeVoice> instance instead of Array<\/codeVoice>, use the type-cast operator (as<\/codeVoice>) to bridge your instance. For bridging to be possible, the Element<\/codeVoice> type of your array must be a class, an @objc<\/codeVoice> protocol (a protocol imported from Objective-C or marked with the @objc<\/codeVoice> attribute), or a type that bridges to a Foundation type.<\/Para>The following example shows how you can bridge an Array<\/codeVoice> instance to NSArray<\/codeVoice> to use the write(to:atomically:)<\/codeVoice> method. In this example, the colors<\/codeVoice> array can be bridged to NSArray<\/codeVoice> because the colors<\/codeVoice> array’s String<\/codeVoice> elements bridge to NSString<\/codeVoice>. The compiler prevents bridging the moreColors<\/codeVoice> array, on the other hand, because its Element<\/codeVoice> type is Optional<String><\/codeVoice>, which does not<\/emphasis> bridge to a Foundation type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Bridging from Array<\/codeVoice> to NSArray<\/codeVoice> takes O(1) time and O(1) space if the array’s elements are already instances of a class or an @objc<\/codeVoice> protocol; otherwise, it takes O(n<\/emphasis>) time and space.<\/Para>When the destination array’s element type is a class or an @objc<\/codeVoice> protocol, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> first calls the copy(with:)<\/codeVoice> (- copyWithZone:<\/codeVoice> in Objective-C) method on the array to get an immutable copy and then performs additional Swift bookkeeping work that takes O(1) time. For instances of NSArray<\/codeVoice> that are already immutable, copy(with:)<\/codeVoice> usually returns the same array in O(1) time; otherwise, the copying performance is unspecified. If copy(with:)<\/codeVoice> returns the same array, the instances of NSArray<\/codeVoice> and Array<\/codeVoice> share storage using the same copy-on-write optimization that is used when two instances of Array<\/codeVoice> share storage.<\/Para>When the destination array’s element type is a nonclass type that bridges to a Foundation type, bridging from NSArray<\/codeVoice> to Array<\/codeVoice> performs a bridging copy of the elements to contiguous storage in O(n<\/emphasis>) time. For example, bridging from NSArray<\/codeVoice> to Array<Int><\/codeVoice> performs such a copy. No further bridging is required when accessing elements of the Array<\/codeVoice> instance.<\/Para>The ContiguousArray<\/codeVoice> and ArraySlice<\/codeVoice> types are not bridged; instances of those types always have a contiguous block of memory as their storage.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.name" : "Array",
+        "key.doc.type" : "Class",
+        "key.fully_annotated_decl" : "@frozen<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> struct<\/syntaxtype.keyword> Array<\/decl.name><Element<\/decl.generic_type_param.name><\/decl.generic_type_param>> : _DestructorSafeContainer<\/ref.protocol><\/decl.struct>",
+        "key.groupname" : "Collection\/Array",
+        "key.is_system" : true,
+        "key.kind" : "source.lang.swift.decl.extension",
+        "key.length" : 268,
+        "key.modulename" : "Swift",
+        "key.name" : "Array",
+        "key.namelength" : 5,
+        "key.nameoffset" : 35602,
+        "key.offset" : 35592,
+        "key.parsed_declaration" : "fileprivate extension Array",
+        "key.parsed_scope.end" : 831,
+        "key.parsed_scope.start" : 820,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
+            "key.annotated_decl" : "mutating func safeDropFirst(_ count: Int<\/Type>) -> [Element<\/Type>]<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.mutating",
+                "key.length" : 8,
+                "key.offset" : 35614
+              }
+            ],
+            "key.bodylength" : 182,
+            "key.bodyoffset" : 35675,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> safeDropFirst<\/decl.name>(_<\/decl.var.parameter.argument_label> count<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [Element<\/ref.generic_type_param>]<\/decl.function.returntype><\/decl.function.method.instance>",
+            "key.groupname" : "Collection\/Array",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 459,
-            "key.name" : "indexPath(in:)",
-            "key.namelength" : 27,
-            "key.nameoffset" : 430,
-            "key.offset" : 425,
-            "key.parsed_declaration" : "func indexPath(in section : Int) -> IndexPath",
-            "key.parsed_scope.end" : 32,
-            "key.parsed_scope.start" : 21,
+            "key.length" : 235,
+            "key.name" : "safeDropFirst(_:)",
+            "key.namelength" : 28,
+            "key.nameoffset" : 35628,
+            "key.offset" : 35623,
+            "key.parsed_declaration" : "mutating func safeDropFirst(_ count : Int) -> [Element]",
+            "key.parsed_scope.end" : 830,
+            "key.parsed_scope.start" : 822,
             "key.substructure" : [
-
+              {
+                "key.annotated_decl" : "let safeCount: Int<\/Type><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
+                "key.groupname" : "Collection\/Array",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 44,
+                "key.name" : "safeCount",
+                "key.namelength" : 9,
+                "key.nameoffset" : 35688,
+                "key.offset" : 35684,
+                "key.parsed_declaration" : "let safeCount = Swift.min(self.count, count)",
+                "key.parsed_scope.end" : 824,
+                "key.parsed_scope.start" : 824,
+                "key.typename" : "Int",
+                "key.typeusr" : "$sSiD",
+                "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_E71D3D96C42690D19F7CD02522C562C9LLySayxGSiF0C5CountL_Sivp"
+              },
+              {
+                "key.annotated_decl" : "let values: ArraySlice<\/Type><Element><\/Declaration>",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+                "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> values<\/decl.name>: ArraySlice<\/ref.struct><Element><\/decl.var.type><\/decl.var.local>",
+                "key.groupname" : "Collection\/Array",
+                "key.kind" : "source.lang.swift.decl.var.local",
+                "key.length" : 32,
+                "key.name" : "values",
+                "key.namelength" : 6,
+                "key.nameoffset" : 35741,
+                "key.offset" : 35737,
+                "key.parsed_declaration" : "let values = self[0..",
+                "key.typeusr" : "$ss10ArraySliceVyxGD",
+                "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_E71D3D96C42690D19F7CD02522C562C9LLySayxGSiF6valuesL_s10ArraySliceVyxGvp"
+              }
             ],
-            "key.typename" : "(SupplementaryKind) -> (Int) -> IndexPath",
-            "key.typeusr" : "$s2in10Foundation9IndexPathVSi_tcD",
-            "key.usr" : "s:10ListableUI17SupplementaryKindO9indexPath2in10Foundation05IndexF0VSi_tF"
+            "key.typename" : " (inout Array) -> (Int) -> [Element]",
+            "key.typeusr" : "$sySayxGSicD",
+            "key.usr" : "s:Sa10ListableUIE13safeDropFirst33_E71D3D96C42690D19F7CD02522C562C9LLySayxGSiF"
           }
         ],
-        "key.typename" : "SupplementaryKind.Type",
-        "key.typeusr" : "$s10ListableUI17SupplementaryKindOmD",
-        "key.usr" : "s:10ListableUI17SupplementaryKindO"
+        "key.typename" : "Array.Type",
+        "key.typeusr" : "$sSayxGmD",
+        "key.usr" : "s:Sa"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
+        "key.annotated_decl" : "fileprivate func performLayout<Input>(for input: Input<\/Type>, _ block: (Input<\/Type>) -> ())<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.fileprivate",
+            "key.length" : 11,
+            "key.offset" : 35863
+          }
+        ],
+        "key.bodylength" : 18,
+        "key.bodyoffset" : 35946,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+        "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performLayout<\/decl.name><Input<\/decl.generic_type_param.name><\/decl.generic_type_param>>(for<\/decl.var.parameter.argument_label> input<\/decl.var.parameter.name>: Input<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (Input<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.free>",
+        "key.kind" : "source.lang.swift.decl.function.free",
+        "key.length" : 90,
+        "key.name" : "performLayout(for:_:)",
+        "key.namelength" : 64,
+        "key.nameoffset" : 35880,
+        "key.offset" : 35875,
+        "key.parsed_declaration" : "fileprivate func performLayout(for input : Input, _ block : (Input) -> ())",
+        "key.parsed_scope.end" : 837,
+        "key.parsed_scope.start" : 834,
+        "key.substructure" : [
+          {
+            "key.annotated_decl" : "Input<\/Declaration>",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Layout\/Table\/TableListLayout.swift",
+            "key.fully_annotated_decl" : "Input<\/decl.generic_type_param.name><\/decl.generic_type_param>",
+            "key.kind" : "source.lang.swift.decl.generic_type_param",
+            "key.length" : 5,
+            "key.name" : "Input",
+            "key.namelength" : 5,
+            "key.nameoffset" : 35894,
+            "key.offset" : 35894,
+            "key.parsed_declaration" : "fileprivate func performLayout (for: Input, (Input) -> ()) -> ()",
+        "key.typeusr" : "$s3for_yx_yxXEtcluD",
+        "key.usr" : "s:10ListableUI13performLayout33_E71D3D96C42690D19F7CD02522C562C9LL3for_yx_yxXEtlF"
       }
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 7174,
     "key.offset" : 0,
@@ -48727,8 +50738,8 @@
             "Para" : "When writing custom list layouts, `LayoutDirection` provides many helper methods to convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical layout directions. See the extensions in this file for more details."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-        "key.doc.full_as_xml" : "LayoutDirection<\/Name>s:10ListableUI15LayoutDirectionO<\/USR>public enum LayoutDirection : Hashable<\/Declaration>Describes the given direction \/ axis that a layout uses when flowing its content.<\/Para><\/Abstract>Traditional table views \/ lists you see use a .vertical<\/codeVoice> layout direction, however, you may want to use .horizontal<\/codeVoice> for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>When writing custom list layouts, LayoutDirection<\/codeVoice> provides many helper methods to convert the coordinates of CGSize<\/codeVoice>, CGPoint<\/codeVoice>, CGRect<\/codeVoice>, etc, to horizontal or vertical layout directions. See the extensions in this file for more details.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+        "key.doc.full_as_xml" : "LayoutDirection<\/Name>s:10ListableUI15LayoutDirectionO<\/USR>public enum LayoutDirection : Hashable<\/Declaration>Describes the given direction \/ axis that a layout uses when flowing its content.<\/Para><\/Abstract>Traditional table views \/ lists you see use a .vertical<\/codeVoice> layout direction, however, you may want to use .horizontal<\/codeVoice> for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>When writing custom list layouts, LayoutDirection<\/codeVoice> provides many helper methods to convert the coordinates of CGSize<\/codeVoice>, CGPoint<\/codeVoice>, CGRect<\/codeVoice>, etc, to horizontal or vertical layout directions. See the extensions in this file for more details.<\/Para><\/Discussion><\/CommentParts><\/Other>",
         "key.doc.line" : 42,
         "key.doc.name" : "LayoutDirection",
         "key.doc.type" : "Other",
@@ -48741,7 +50752,7 @@
             "key.offset" : 1576
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> LayoutDirection<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>",
         "key.inheritedtypes" : [
           {
@@ -48776,14 +50787,14 @@
                     "CodeListing" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-                "key.doc.full_as_xml" : "vertical<\/Name>s:10ListableUI15LayoutDirectionO8verticalyA2CmF<\/USR><\/Declaration>A list layout which lays out top to bottom.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+                "key.doc.full_as_xml" : "vertical<\/Name>s:10ListableUI15LayoutDirectionO8verticalyA2CmF<\/USR><\/Declaration>A list layout which lays out top to bottom.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 58,
                 "key.doc.name" : "vertical",
                 "key.doc.type" : "Other",
                 "key.doclength" : 492,
                 "key.docoffset" : 1591,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> vertical<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 8,
@@ -48818,14 +50829,14 @@
                     "CodeListing" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-                "key.doc.full_as_xml" : "horizontal<\/Name>s:10ListableUI15LayoutDirectionO10horizontalyA2CmF<\/USR><\/Declaration>A list layout which lays out left to right (or leading to trailing, depending on implementation).<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+                "key.doc.full_as_xml" : "horizontal<\/Name>s:10ListableUI15LayoutDirectionO10horizontalyA2CmF<\/USR><\/Declaration>A list layout which lays out left to right (or leading to trailing, depending on implementation).<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 69,
                 "key.doc.name" : "horizontal",
                 "key.doc.type" : "Other",
                 "key.doclength" : 512,
                 "key.docoffset" : 2110,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> horizontal<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 10,
@@ -48864,12 +50875,12 @@
             "Para" : "When writing custom list layouts, `LayoutDirection` provides many helper methods to convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical layout directions. See the extensions in this file for more details."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-        "key.doc.full_as_xml" : "LayoutDirection<\/Name>s:10ListableUI15LayoutDirectionO<\/USR>public enum LayoutDirection : Hashable<\/Declaration>Describes the given direction \/ axis that a layout uses when flowing its content.<\/Para><\/Abstract>Traditional table views \/ lists you see use a .vertical<\/codeVoice> layout direction, however, you may want to use .horizontal<\/codeVoice> for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>When writing custom list layouts, LayoutDirection<\/codeVoice> provides many helper methods to convert the coordinates of CGSize<\/codeVoice>, CGPoint<\/codeVoice>, CGRect<\/codeVoice>, etc, to horizontal or vertical layout directions. See the extensions in this file for more details.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+        "key.doc.full_as_xml" : "LayoutDirection<\/Name>s:10ListableUI15LayoutDirectionO<\/USR>public enum LayoutDirection : Hashable<\/Declaration>Describes the given direction \/ axis that a layout uses when flowing its content.<\/Para><\/Abstract>Traditional table views \/ lists you see use a .vertical<\/codeVoice> layout direction, however, you may want to use .horizontal<\/codeVoice> for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>When writing custom list layouts, LayoutDirection<\/codeVoice> provides many helper methods to convert the coordinates of CGSize<\/codeVoice>, CGPoint<\/codeVoice>, CGRect<\/codeVoice>, etc, to horizontal or vertical layout directions. See the extensions in this file for more details.<\/Para><\/Discussion><\/CommentParts><\/Other>",
         "key.doc.line" : 42,
         "key.doc.name" : "LayoutDirection",
         "key.doc.type" : "Other",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> LayoutDirection<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 878,
@@ -48896,14 +50907,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "When writing a layout, use this method to return differing values based on\nthe direction. The passed closures will only be evaluated if they are for the current direction.",
             "key.doc.declaration" : "public func `switch`(vertical: () -> Value, horizontal: () -> Value) -> Value",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "switch(vertical:horizontal:)<\/Name>s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXE_xyXEtlF<\/USR>public func `switch`<Value>(vertical: () -> Value, horizontal: () -> Value) -> Value<\/Declaration>When writing a layout, use this method to return differing values based on the direction. The passed closures will only be evaluated if they are for the current direction.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "switch(vertical:horizontal:)<\/Name>s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXE_xyXEtlF<\/USR>public func `switch`<Value>(vertical: () -> Value, horizontal: () -> Value) -> Value<\/Declaration>When writing a layout, use this method to return differing values based on the direction. The passed closures will only be evaluated if they are for the current direction.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 77,
             "key.doc.name" : "switch(vertical:horizontal:)",
             "key.doc.type" : "Function",
             "key.doclength" : 184,
             "key.docoffset" : 2678,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> `switch`<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(vertical<\/decl.var.parameter.argument_label>: () -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, horizontal<\/decl.var.parameter.argument_label>: () -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 207,
@@ -48922,7 +50933,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Value<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
                 "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 5,
@@ -48957,14 +50968,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "When writing a layout, use this method to return differing values based on\nthe direction. The passed autoclosures will only be evaluated if they are for the current direction.",
             "key.doc.declaration" : "public func `switch`(vertical: @autoclosure () -> Value, horizontal: @autoclosure () -> Value) -> Value",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "switch(vertical:horizontal:)<\/Name>s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXK_xyXKtlF<\/USR>public func `switch`<Value>(vertical: @autoclosure () -> Value, horizontal: @autoclosure () -> Value) -> Value<\/Declaration>When writing a layout, use this method to return differing values based on the direction. The passed autoclosures will only be evaluated if they are for the current direction.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "switch(vertical:horizontal:)<\/Name>s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXK_xyXKtlF<\/USR>public func `switch`<Value>(vertical: @autoclosure () -> Value, horizontal: @autoclosure () -> Value) -> Value<\/Declaration>When writing a layout, use this method to return differing values based on the direction. The passed autoclosures will only be evaluated if they are for the current direction.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 86,
             "key.doc.name" : "switch(vertical:horizontal:)",
             "key.doc.type" : "Function",
             "key.doclength" : 188,
             "key.docoffset" : 3090,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> `switch`<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>>(vertical<\/decl.var.parameter.argument_label>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, horizontal<\/decl.var.parameter.argument_label>: @autoclosure<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Value<\/ref.generic_type_param><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 233,
@@ -48983,7 +50994,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Value<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
                 "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 5,
@@ -49025,12 +51036,12 @@
             "Para" : "When writing custom list layouts, `LayoutDirection` provides many helper methods to convert the coordinates of `CGSize`, `CGPoint`, `CGRect`, etc, to horizontal or vertical layout directions. See the extensions in this file for more details."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-        "key.doc.full_as_xml" : "LayoutDirection<\/Name>s:10ListableUI15LayoutDirectionO<\/USR>public enum LayoutDirection : Hashable<\/Declaration>Describes the given direction \/ axis that a layout uses when flowing its content.<\/Para><\/Abstract>Traditional table views \/ lists you see use a .vertical<\/codeVoice> layout direction, however, you may want to use .horizontal<\/codeVoice> for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>When writing custom list layouts, LayoutDirection<\/codeVoice> provides many helper methods to convert the coordinates of CGSize<\/codeVoice>, CGPoint<\/codeVoice>, CGRect<\/codeVoice>, etc, to horizontal or vertical layout directions. See the extensions in this file for more details.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+        "key.doc.full_as_xml" : "LayoutDirection<\/Name>s:10ListableUI15LayoutDirectionO<\/USR>public enum LayoutDirection : Hashable<\/Declaration>Describes the given direction \/ axis that a layout uses when flowing its content.<\/Para><\/Abstract>Traditional table views \/ lists you see use a .vertical<\/codeVoice> layout direction, however, you may want to use .horizontal<\/codeVoice> for embedded lists that scroll horizontally in a larger vertical list, similar to what you would see in the iOS App Store, or for a list that users can scroll left to right.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>When writing custom list layouts, LayoutDirection<\/codeVoice> provides many helper methods to convert the coordinates of CGSize<\/codeVoice>, CGPoint<\/codeVoice>, CGRect<\/codeVoice>, etc, to horizontal or vertical layout directions. See the extensions in this file for more details.<\/Para><\/Discussion><\/CommentParts><\/Other>",
         "key.doc.line" : 42,
         "key.doc.name" : "LayoutDirection",
         "key.doc.type" : "Other",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> LayoutDirection<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 3646,
@@ -49065,14 +51076,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns the **height** of the provided size.\n`.horizontal`: Returns the **width** of the provided size.",
             "key.doc.declaration" : "public func height(for size: CGSize) -> CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "height(for:)<\/Name>s:10ListableUI15LayoutDirectionO6height3for12CoreGraphics7CGFloatVSo6CGSizeV_tF<\/USR>public func height(for size: CGSize) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the height<\/bold> of the provided size. .horizontal<\/codeVoice>: Returns the width<\/bold> of the provided size.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "height(for:)<\/Name>s:10ListableUI15LayoutDirectionO6height3for12CoreGraphics7CGFloatVSo6CGSizeV_tF<\/USR>public func height(for size: CGSize) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the height<\/bold> of the provided size. .horizontal<\/codeVoice>: Returns the width<\/bold> of the provided size.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 103,
             "key.doc.name" : "height(for:)",
             "key.doc.type" : "Function",
             "key.doclength" : 129,
             "key.docoffset" : 3617,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> height<\/decl.name>(for<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 172,
@@ -49105,14 +51116,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns the **width** of the provided size.\n`.horizontal`: Returns the **height** of the provided size.",
             "key.doc.declaration" : "public func width(for size: CGSize) -> CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "width(for:)<\/Name>s:10ListableUI15LayoutDirectionO5width3for12CoreGraphics7CGFloatVSo6CGSizeV_tF<\/USR>public func width(for size: CGSize) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the width<\/bold> of the provided size. .horizontal<\/codeVoice>: Returns the height<\/bold> of the provided size.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "width(for:)<\/Name>s:10ListableUI15LayoutDirectionO5width3for12CoreGraphics7CGFloatVSo6CGSizeV_tF<\/USR>public func width(for size: CGSize) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the width<\/bold> of the provided size. .horizontal<\/codeVoice>: Returns the height<\/bold> of the provided size.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 113,
             "key.doc.name" : "width(for:)",
             "key.doc.type" : "Function",
             "key.doclength" : 129,
             "key.docoffset" : 3939,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> width<\/decl.name>(for<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 171,
@@ -49145,14 +51156,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns a `CGPoint` made with `(x, y)`.\n`.horizontal`: Returns a `CGPoint` made with `(y, x)`.",
             "key.doc.declaration" : "public func point(x: CGFloat, y: CGFloat) -> CGPoint",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "point(x:y:)<\/Name>s:10ListableUI15LayoutDirectionO5point1x1ySo7CGPointV12CoreGraphics7CGFloatV_AKtF<\/USR>public func point(x: CGFloat, y: CGFloat) -> CGPoint<\/Declaration>.vertical<\/codeVoice>: Returns a CGPoint<\/codeVoice> made with (x, y)<\/codeVoice>. .horizontal<\/codeVoice>: Returns a CGPoint<\/codeVoice> made with (y, x)<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "point(x:y:)<\/Name>s:10ListableUI15LayoutDirectionO5point1x1ySo7CGPointV12CoreGraphics7CGFloatV_AKtF<\/USR>public func point(x: CGFloat, y: CGFloat) -> CGPoint<\/Declaration>.vertical<\/codeVoice>: Returns a CGPoint<\/codeVoice> made with (x, y)<\/codeVoice>. .horizontal<\/codeVoice>: Returns a CGPoint<\/codeVoice> made with (y, x)<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 123,
             "key.doc.name" : "point(x:y:)",
             "key.doc.type" : "Function",
             "key.doclength" : 120,
             "key.docoffset" : 4260,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> point<\/decl.name>(x<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, y<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGPoint<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 195,
@@ -49185,14 +51196,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns the provided size.\n`.horizontal`: Returns a size created by swapping the width and height.",
             "key.doc.declaration" : "public func size(for size: CGSize) -> CGSize",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "size(for:)<\/Name>s:10ListableUI15LayoutDirectionO4size3forSo6CGSizeVAG_tF<\/USR>public func size(for size: CGSize) -> CGSize<\/Declaration>.vertical<\/codeVoice>: Returns the provided size. .horizontal<\/codeVoice>: Returns a size created by swapping the width and height.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "size(for:)<\/Name>s:10ListableUI15LayoutDirectionO4size3forSo6CGSizeVAG_tF<\/USR>public func size(for size: CGSize) -> CGSize<\/Declaration>.vertical<\/codeVoice>: Returns the provided size. .horizontal<\/codeVoice>: Returns a size created by swapping the width and height.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 133,
             "key.doc.name" : "size(for:)",
             "key.doc.type" : "Function",
             "key.doclength" : 124,
             "key.docoffset" : 4596,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> size<\/decl.name>(for<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 240,
@@ -49230,14 +51241,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns a `CGSize` made with `(width, height)`.\n`.horizontal`: Returns a `CGSize` made with `(height, width)`.",
             "key.doc.declaration" : "public func size(width: CGFloat, height: CGFloat) -> CGSize",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "size(width:height:)<\/Name>s:10ListableUI15LayoutDirectionO4size5width6heightSo6CGSizeV12CoreGraphics7CGFloatV_AKtF<\/USR>public func size(width: CGFloat, height: CGFloat) -> CGSize<\/Declaration>.vertical<\/codeVoice>: Returns a CGSize<\/codeVoice> made with (width, height)<\/codeVoice>. .horizontal<\/codeVoice>: Returns a CGSize<\/codeVoice> made with (height, width)<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "size(width:height:)<\/Name>s:10ListableUI15LayoutDirectionO4size5width6heightSo6CGSizeV12CoreGraphics7CGFloatV_AKtF<\/USR>public func size(width: CGFloat, height: CGFloat) -> CGSize<\/Declaration>.vertical<\/codeVoice>: Returns a CGSize<\/codeVoice> made with (width, height)<\/codeVoice>. .horizontal<\/codeVoice>: Returns a CGSize<\/codeVoice> made with (height, width)<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 143,
             "key.doc.name" : "size(width:height:)",
             "key.doc.type" : "Function",
             "key.doclength" : 136,
             "key.docoffset" : 4981,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> size<\/decl.name>(width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 236,
@@ -49275,14 +51286,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns the **maxY** of the frame.\n`.horizontal`: Returns the **maxX** of the frame.",
             "key.doc.declaration" : "public func maxY(for frame: CGRect) -> CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "maxY(for:)<\/Name>s:10ListableUI15LayoutDirectionO4maxY3for12CoreGraphics7CGFloatVSo6CGRectV_tF<\/USR>public func maxY(for frame: CGRect) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the maxY<\/bold> of the frame. .horizontal<\/codeVoice>: Returns the maxX<\/bold> of the frame.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "maxY(for:)<\/Name>s:10ListableUI15LayoutDirectionO4maxY3for12CoreGraphics7CGFloatVSo6CGRectV_tF<\/USR>public func maxY(for frame: CGRect) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the maxY<\/bold> of the frame. .horizontal<\/codeVoice>: Returns the maxX<\/bold> of the frame.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 153,
             "key.doc.name" : "maxY(for:)",
             "key.doc.type" : "Function",
             "key.doclength" : 110,
             "key.docoffset" : 5374,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> maxY<\/decl.name>(for<\/decl.var.parameter.argument_label> frame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 170,
@@ -49315,14 +51326,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns the **maxX** of the frame.\n`.horizontal`: Returns the **maxY** of the frame.",
             "key.doc.declaration" : "public func maxX(for frame: CGRect) -> CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "maxX(for:)<\/Name>s:10ListableUI15LayoutDirectionO4maxX3for12CoreGraphics7CGFloatVSo6CGRectV_tF<\/USR>public func maxX(for frame: CGRect) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the maxX<\/bold> of the frame. .horizontal<\/codeVoice>: Returns the maxY<\/bold> of the frame.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "maxX(for:)<\/Name>s:10ListableUI15LayoutDirectionO4maxX3for12CoreGraphics7CGFloatVSo6CGRectV_tF<\/USR>public func maxX(for frame: CGRect) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the maxX<\/bold> of the frame. .horizontal<\/codeVoice>: Returns the maxY<\/bold> of the frame.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 163,
             "key.doc.name" : "maxX(for:)",
             "key.doc.type" : "Function",
             "key.doclength" : 110,
             "key.docoffset" : 5675,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> maxX<\/decl.name>(for<\/decl.var.parameter.argument_label> frame<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 170,
@@ -49355,14 +51366,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns the **x** of the point.\n`.horizontal`: Returns the **y** of the point.",
             "key.doc.declaration" : "public func x(for point: CGPoint) -> CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "x(for:)<\/Name>s:10ListableUI15LayoutDirectionO1x3for12CoreGraphics7CGFloatVSo7CGPointV_tF<\/USR>public func x(for point: CGPoint) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the x<\/bold> of the point. .horizontal<\/codeVoice>: Returns the y<\/bold> of the point.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "x(for:)<\/Name>s:10ListableUI15LayoutDirectionO1x3for12CoreGraphics7CGFloatVSo7CGPointV_tF<\/USR>public func x(for point: CGPoint) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the x<\/bold> of the point. .horizontal<\/codeVoice>: Returns the y<\/bold> of the point.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 173,
             "key.doc.name" : "x(for:)",
             "key.doc.type" : "Function",
             "key.doclength" : 104,
             "key.docoffset" : 5976,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> x<\/decl.name>(for<\/decl.var.parameter.argument_label> point<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 162,
@@ -49395,14 +51406,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns the **y** of the point.\n`.horizontal`: Returns the **x** of the point.",
             "key.doc.declaration" : "public func y(for point: CGPoint) -> CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "y(for:)<\/Name>s:10ListableUI15LayoutDirectionO1y3for12CoreGraphics7CGFloatVSo7CGPointV_tF<\/USR>public func y(for point: CGPoint) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the y<\/bold> of the point. .horizontal<\/codeVoice>: Returns the x<\/bold> of the point.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "y(for:)<\/Name>s:10ListableUI15LayoutDirectionO1y3for12CoreGraphics7CGFloatVSo7CGPointV_tF<\/USR>public func y(for point: CGPoint) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the y<\/bold> of the point. .horizontal<\/codeVoice>: Returns the x<\/bold> of the point.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 183,
             "key.doc.name" : "y(for:)",
             "key.doc.type" : "Function",
             "key.doclength" : 104,
             "key.docoffset" : 6263,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> y<\/decl.name>(for<\/decl.var.parameter.argument_label> point<\/decl.var.parameter.name>: CGPoint<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 162,
@@ -49435,14 +51446,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns the **top** of the insets.\n`.horizontal`: Returns the **left** of the insets.",
             "key.doc.declaration" : "public func top(with insets: UIEdgeInsets) -> CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "top(with:)<\/Name>s:10ListableUI15LayoutDirectionO3top4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF<\/USR>public func top(with insets: UIEdgeInsets) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the top<\/bold> of the insets. .horizontal<\/codeVoice>: Returns the left<\/bold> of the insets.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "top(with:)<\/Name>s:10ListableUI15LayoutDirectionO3top4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF<\/USR>public func top(with insets: UIEdgeInsets) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the top<\/bold> of the insets. .horizontal<\/codeVoice>: Returns the left<\/bold> of the insets.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 193,
             "key.doc.name" : "top(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 111,
             "key.docoffset" : 6550,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> top<\/decl.name>(with<\/decl.var.parameter.argument_label> insets<\/decl.var.parameter.name>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 178,
@@ -49475,14 +51486,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "`.vertical`: Returns the **bottom** of the insets.\n`.horizontal`: Returns the **right** of the insets.",
             "key.doc.declaration" : "public func bottom(with insets: UIEdgeInsets) -> CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
-            "key.doc.full_as_xml" : "bottom(with:)<\/Name>s:10ListableUI15LayoutDirectionO6bottom4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF<\/USR>public func bottom(with insets: UIEdgeInsets) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the bottom<\/bold> of the insets. .horizontal<\/codeVoice>: Returns the right<\/bold> of the insets.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.doc.full_as_xml" : "bottom(with:)<\/Name>s:10ListableUI15LayoutDirectionO6bottom4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF<\/USR>public func bottom(with insets: UIEdgeInsets) -> CGFloat<\/Declaration>.vertical<\/codeVoice>: Returns the bottom<\/bold> of the insets. .horizontal<\/codeVoice>: Returns the right<\/bold> of the insets.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 203,
             "key.doc.name" : "bottom(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 115,
             "key.docoffset" : 6860,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LayoutDirection.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LayoutDirection.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> bottom<\/decl.name>(with<\/decl.var.parameter.argument_label> insets<\/decl.var.parameter.name>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 185,
@@ -49508,7 +51519,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 6530,
     "key.offset" : 0,
@@ -49550,14 +51561,14 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-        "key.doc.full_as_xml" : "ListActions<\/Name>s:10ListableUI11ListActionsC<\/USR>public final class ListActions<\/Declaration>ListActions<\/codeVoice> is an type that you can use to gain access to actions to perform on a List<\/codeVoice> (for example, scrolling to a given item in the list) when used when you otherwise do not have a reference to the underlying list view (for example, when using ListViewController<\/codeVoice> or BlueprintUILists<\/codeVoice>).<\/Para><\/Abstract>You also gain access to a ListActions<\/codeVoice> instance when using ListStateObserver<\/codeVoice>, in each registered callback.<\/Para>You usually use ListActions<\/codeVoice> by keeping an instance on your view controller, and then assign it when providing list content. Once the list is updated with the content, the ListActions<\/codeVoice> will be registered with the list to perform actions.<\/Para>A ListActions<\/codeVoice> behaviors are split into internal sub-objects, such as Scrolling<\/codeVoice> and ViewControllerTransitioning<\/codeVoice>. You can pass these separate objects around if your code invokes actions from several different places.<\/Para>Only one ListActions<\/codeVoice> can be registered in a list at a time. If you register a new one, it replaces the last one, and any actions performed on the last instance become no-ops.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+        "key.doc.full_as_xml" : "ListActions<\/Name>s:10ListableUI11ListActionsC<\/USR>public final class ListActions<\/Declaration>ListActions<\/codeVoice> is an type that you can use to gain access to actions to perform on a List<\/codeVoice> (for example, scrolling to a given item in the list) when used when you otherwise do not have a reference to the underlying list view (for example, when using ListViewController<\/codeVoice> or BlueprintUILists<\/codeVoice>).<\/Para><\/Abstract>You also gain access to a ListActions<\/codeVoice> instance when using ListStateObserver<\/codeVoice>, in each registered callback.<\/Para>You usually use ListActions<\/codeVoice> by keeping an instance on your view controller, and then assign it when providing list content. Once the list is updated with the content, the ListActions<\/codeVoice> will be registered with the list to perform actions.<\/Para>A ListActions<\/codeVoice> behaviors are split into internal sub-objects, such as Scrolling<\/codeVoice> and ViewControllerTransitioning<\/codeVoice>. You can pass these separate objects around if your code invokes actions from several different places.<\/Para>Only one ListActions<\/codeVoice> can be registered in a list at a time. If you register a new one, it replaces the last one, and any actions performed on the last instance become no-ops.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 58,
         "key.doc.name" : "ListActions",
         "key.doc.type" : "Class",
         "key.doclength" : 1986,
         "key.docoffset" : 109,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListActions<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 4421,
@@ -49582,14 +51593,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "Actions which allow scrolling to individual items in a list.",
             "key.doc.declaration" : "public let scrolling: Scrolling",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-            "key.doc.full_as_xml" : "scrolling<\/Name>s:10ListableUI11ListActionsC9scrollingAC9ScrollingCvp<\/USR>public let scrolling: Scrolling<\/Declaration>Actions which allow scrolling to individual items in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+            "key.doc.full_as_xml" : "scrolling<\/Name>s:10ListableUI11ListActionsC9scrollingAC9ScrollingCvp<\/USR>public let scrolling: Scrolling<\/Declaration>Actions which allow scrolling to individual items in a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 61,
             "key.doc.name" : "scrolling",
             "key.doc.type" : "Other",
             "key.doclength" : 65,
             "key.docoffset" : 2141,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> scrolling<\/decl.name>: Scrolling<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 25,
@@ -49617,14 +51628,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "Actions which allow hooking up your list to the view controller transitioning APIs.",
             "key.doc.declaration" : "public let viewControllerTransitioning: ViewControllerTransitioning",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-            "key.doc.full_as_xml" : "viewControllerTransitioning<\/Name>s:10ListableUI11ListActionsC27viewControllerTransitioningAC04ViewfG0Cvp<\/USR>public let viewControllerTransitioning: ViewControllerTransitioning<\/Declaration>Actions which allow hooking up your list to the view controller transitioning APIs.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+            "key.doc.full_as_xml" : "viewControllerTransitioning<\/Name>s:10ListableUI11ListActionsC27viewControllerTransitioningAC04ViewfG0Cvp<\/USR>public let viewControllerTransitioning: ViewControllerTransitioning<\/Declaration>Actions which allow hooking up your list to the view controller transitioning APIs.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 64,
             "key.doc.name" : "viewControllerTransitioning",
             "key.doc.type" : "Other",
             "key.doclength" : 88,
             "key.docoffset" : 2252,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> viewControllerTransitioning<\/decl.name>: ViewControllerTransitioning<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 61,
@@ -49654,14 +51665,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates and returns an actions object which can be registered with a list view.",
             "key.doc.declaration" : "public init()",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-            "key.doc.full_as_xml" : "init()<\/Name>s:10ListableUI11ListActionsCACycfc<\/USR>public init()<\/Declaration>Creates and returns an actions object which can be registered with a list view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+            "key.doc.full_as_xml" : "init()<\/Name>s:10ListableUI11ListActionsCACycfc<\/USR>public init()<\/Declaration>Creates and returns an actions object which can be registered with a list view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 67,
             "key.doc.name" : "init()",
             "key.doc.type" : "Function",
             "key.doclength" : 84,
             "key.docoffset" : 2422,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 124,
@@ -49691,7 +51702,7 @@
             ],
             "key.bodylength" : 154,
             "key.bodyoffset" : 2682,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
             "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 181,
@@ -49727,14 +51738,14 @@
             "key.doc.column" : 24,
             "key.doc.comment" : "Provides access to scrolling actions within a list view.",
             "key.doc.declaration" : "public final class ListableUI.ListActions.Scrolling",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-            "key.doc.full_as_xml" : "Scrolling<\/Name>s:10ListableUI11ListActionsC9ScrollingC<\/USR>public final class ListableUI.ListActions.Scrolling<\/Declaration>Provides access to scrolling actions within a list view.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+            "key.doc.full_as_xml" : "Scrolling<\/Name>s:10ListableUI11ListActionsC9ScrollingC<\/USR>public final class ListableUI.ListActions.Scrolling<\/Declaration>Provides access to scrolling actions within a list view.<\/Para><\/Abstract><\/CommentParts><\/Class>",
             "key.doc.line" : 80,
             "key.doc.name" : "Scrolling",
             "key.doc.type" : "Class",
             "key.doclength" : 61,
             "key.docoffset" : 2843,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListActions<\/ref.class>.Scrolling<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 3013,
@@ -49758,7 +51769,7 @@
                 ],
                 "key.bodylength" : 0,
                 "key.bodyoffset" : 2971,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 9,
@@ -49788,7 +51799,7 @@
                     "key.offset" : 2990
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 24,
@@ -49814,7 +51825,7 @@
                     "key.offset" : 3049
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListActions<\/ref.class>.Scrolling<\/ref.class>.ScrollCompletion<\/decl.name> = ListView<\/ref.class>.ScrollCompletion<\/ref.typealias><\/decl.typealias>",
                 "key.kind" : "source.lang.swift.decl.typealias",
                 "key.length" : 54,
@@ -49849,14 +51860,14 @@
                 "key.doc.column" : 21,
                 "key.doc.comment" : "\nScrolls to the provided item, with the provided positioning.\nIf the item is contained in the list, true is returned. If it is not, false is returned.",
                 "key.doc.declaration" : "public func scrollTo(item: AnyItem, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-                "key.doc.full_as_xml" : "scrollTo(item:position:animation:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0N9AnimationOySbctF<\/USR>public func scrollTo(item: AnyItem, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the provided item, with the provided positioning. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+                "key.doc.full_as_xml" : "scrollTo(item:position:animation:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0N9AnimationOySbctF<\/USR>public func scrollTo(item: AnyItem, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the provided item, with the provided positioning. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
                 "key.doc.line" : 93,
                 "key.doc.name" : "scrollTo(item:position:animation:completion:)",
                 "key.doc.type" : "Function",
                 "key.doclength" : 190,
                 "key.docoffset" : 3128,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animation<\/decl.var.parameter.argument_label>: ScrollAnimation<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> ScrollCompletion<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 534,
@@ -49899,14 +51910,14 @@
                 "key.doc.column" : 21,
                 "key.doc.comment" : "\nScrolls to the item with the provided identifier, with the provided positioning.\nIf there is more than one item with the same identifier, the list scrolls to the first.\nIf the item is contained in the list, true is returned. If it is not, false is returned.",
                 "key.doc.declaration" : "public func scrollTo(item: AnyIdentifier, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-                "key.doc.full_as_xml" : "scrollTo(item:position:animation:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0N9AnimationOySbctF<\/USR>public func scrollTo(item: AnyIdentifier, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the item with the provided identifier, with the provided positioning. If there is more than one item with the same identifier, the list scrolls to the first. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+                "key.doc.full_as_xml" : "scrollTo(item:position:animation:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0N9AnimationOySbctF<\/USR>public func scrollTo(item: AnyIdentifier, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the item with the provided identifier, with the provided positioning. If there is more than one item with the same identifier, the list scrolls to the first. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
                 "key.doc.line" : 118,
                 "key.doc.name" : "scrollTo(item:position:animation:completion:)",
                 "key.doc.type" : "Function",
                 "key.doclength" : 310,
                 "key.docoffset" : 3912,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animation<\/decl.var.parameter.argument_label>: ScrollAnimation<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> ScrollCompletion<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 544,
@@ -49949,14 +51960,14 @@
                 "key.doc.column" : 21,
                 "key.doc.comment" : "Scrolls to the very top of the list, which includes displaying the list header.",
                 "key.doc.declaration" : "public func scrollToTop(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-                "key.doc.full_as_xml" : "scrollToTop(animation:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF<\/USR>public func scrollToTop(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the very top of the list, which includes displaying the list header.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+                "key.doc.full_as_xml" : "scrollToTop(animation:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF<\/USR>public func scrollToTop(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the very top of the list, which includes displaying the list header.<\/Para><\/Abstract><\/CommentParts><\/Function>",
                 "key.doc.line" : 139,
                 "key.doc.name" : "scrollToTop(animation:completion:)",
                 "key.doc.type" : "Function",
                 "key.doclength" : 84,
                 "key.docoffset" : 4826,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToTop<\/decl.name>(animation<\/decl.var.parameter.argument_label>: ScrollAnimation<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> ScrollCompletion<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 409,
@@ -49994,14 +52005,14 @@
                 "key.doc.column" : 21,
                 "key.doc.comment" : "Scrolls to the last item in the list. If the list contains no items, no action is performed.",
                 "key.doc.declaration" : "public func scrollToLastItem(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-                "key.doc.full_as_xml" : "scrollToLastItem(animation:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF<\/USR>public func scrollToLastItem(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the last item in the list. If the list contains no items, no action is performed.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+                "key.doc.full_as_xml" : "scrollToLastItem(animation:completion:)<\/Name>s:10ListableUI11ListActionsC9ScrollingC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF<\/USR>public func scrollToLastItem(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the last item in the list. If the list contains no items, no action is performed.<\/Para><\/Abstract><\/CommentParts><\/Function>",
                 "key.doc.line" : 156,
                 "key.doc.name" : "scrollToLastItem(animation:completion:)",
                 "key.doc.type" : "Function",
                 "key.doclength" : 97,
                 "key.docoffset" : 5371,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToLastItem<\/decl.name>(animation<\/decl.var.parameter.argument_label>: ScrollAnimation<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> ScrollCompletion<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 418,
@@ -50044,14 +52055,14 @@
             "key.doc.column" : 24,
             "key.doc.comment" : "Provides access to view controller transitioning options in a list.",
             "key.doc.declaration" : "public final class ListableUI.ListActions.ViewControllerTransitioning",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
-            "key.doc.full_as_xml" : "ViewControllerTransitioning<\/Name>s:10ListableUI11ListActionsC27ViewControllerTransitioningC<\/USR>public final class ListableUI.ListActions.ViewControllerTransitioning<\/Declaration>Provides access to view controller transitioning options in a list.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
+            "key.doc.full_as_xml" : "ViewControllerTransitioning<\/Name>s:10ListableUI11ListActionsC27ViewControllerTransitioningC<\/USR>public final class ListableUI.ListActions.ViewControllerTransitioning<\/Declaration>Provides access to view controller transitioning options in a list.<\/Para><\/Abstract><\/CommentParts><\/Class>",
             "key.doc.line" : 173,
             "key.doc.name" : "ViewControllerTransitioning",
             "key.doc.type" : "Class",
             "key.doclength" : 72,
             "key.docoffset" : 5944,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListActions<\/ref.class>.ViewControllerTransitioning<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 494,
@@ -50075,7 +52086,7 @@
                 ],
                 "key.bodylength" : 0,
                 "key.bodyoffset" : 6101,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 9,
@@ -50105,7 +52116,7 @@
                     "key.offset" : 6120
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "fileprivate<\/syntaxtype.keyword> weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 24,
@@ -50126,7 +52137,7 @@
                 "key.annotated_decl" : "func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator<\/Type>?, animated: Bool<\/Type>)<\/Declaration>",
                 "key.bodylength" : 212,
                 "key.bodyoffset" : 6308,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListActions.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListActions.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> clearSelectionDuringViewWillAppear<\/decl.name>(alongside<\/decl.var.parameter.argument_label> coordinator<\/decl.var.parameter.name>: UIViewControllerTransitionCoordinator<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 342,
@@ -50157,7 +52168,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 2283,
     "key.offset" : 0,
@@ -50191,14 +52202,14 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
-        "key.doc.full_as_xml" : "ListEnvironment<\/Name>s:10ListableUI15ListEnvironmentV<\/USR>public struct ListEnvironment<\/Declaration>An environment of keys and values that are passed to every ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice> during layout and measurement, to allow passing down data.<\/Para><\/Abstract>This type is similar to the SwiftUI or Blueprint Environment<\/codeVoice>, where you define a ListEnvironmentKey<\/codeVoice>, and then provide a custom getter and setter to read and write the content:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can retrieve the ListEnvironment<\/codeVoice> through the info<\/codeVoice> object passed in ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice>’s apply(to:for:with:)<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered>,]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
+        "key.doc.full_as_xml" : "ListEnvironment<\/Name>s:10ListableUI15ListEnvironmentV<\/USR>public struct ListEnvironment<\/Declaration>An environment of keys and values that are passed to every ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice> during layout and measurement, to allow passing down data.<\/Para><\/Abstract>This type is similar to the SwiftUI or Blueprint Environment<\/codeVoice>, where you define a ListEnvironmentKey<\/codeVoice>, and then provide a custom getter and setter to read and write the content:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You can retrieve the ListEnvironment<\/codeVoice> through the info<\/codeVoice> object passed in ItemContent<\/codeVoice> and HeaderFooter<\/codeVoice>’s apply(to:for:with:)<\/codeVoice> methods.<\/Para><\/zCodeLineNumbered>,]]><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 44,
         "key.doc.name" : "ListEnvironment",
         "key.doc.type" : "Class",
         "key.doclength" : 1092,
         "key.docoffset" : 95,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListEnvironment<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 690,
@@ -50223,14 +52234,14 @@
             "key.doc.column" : 23,
             "key.doc.comment" : "A default \"empty\" environment, with no values overridden.\nEach key will return its default value.",
             "key.doc.declaration" : "public static let empty: ListableUI.ListEnvironment",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
-            "key.doc.full_as_xml" : "empty<\/Name>s:10ListableUI15ListEnvironmentV5emptyACvpZ<\/USR>public static let empty: ListableUI.ListEnvironment<\/Declaration>A default “empty” environment, with no values overridden. Each key will return its default value.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.doc.full_as_xml" : "empty<\/Name>s:10ListableUI15ListEnvironmentV5emptyACvpZ<\/USR>public static let empty: ListableUI.ListEnvironment<\/Declaration>A default “empty” environment, with no values overridden. Each key will return its default value.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 48,
             "key.doc.name" : "empty",
             "key.doc.type" : "Other",
             "key.doclength" : 110,
             "key.docoffset" : 1228,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> empty<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 36,
@@ -50260,14 +52271,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Gets or sets an environment value by its key.",
             "key.doc.declaration" : "public subscript(key: Key.Type) -> Key.Value where Key : ListableUI.ListEnvironmentKey { get set }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
-            "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:10ListableUI15ListEnvironmentVy5ValueQzxmcAA0cD3KeyRzluip<\/USR>public subscript<Key>(key: Key.Type) -> Key.Value where Key : ListableUI.ListEnvironmentKey { get set }<\/Declaration>Gets or sets an environment value by its key.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:10ListableUI15ListEnvironmentVy5ValueQzxmcAA0cD3KeyRzluip<\/USR>public subscript<Key>(key: Key.Type) -> Key.Value where Key : ListableUI.ListEnvironmentKey { get set }<\/Declaration>Gets or sets an environment value by its key.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 51,
             "key.doc.name" : "subscript(_:)",
             "key.doc.type" : "Other",
             "key.doclength" : 50,
             "key.docoffset" : 1391,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><Key<\/decl.generic_type_param.name><\/decl.generic_type_param>>(key<\/decl.var.parameter.name>: Key<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> Key<\/ref.generic_type_param>.Value<\/ref.associatedtype><\/decl.function.returntype> where<\/syntaxtype.keyword> Key : ListEnvironmentKey<\/ref.protocol><\/decl.generic_type_requirement> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>",
             "key.kind" : "source.lang.swift.decl.function.subscript",
             "key.length" : 371,
@@ -50282,7 +52293,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "Key<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
                 "key.fully_annotated_decl" : "Key<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 3,
@@ -50304,7 +52315,7 @@
           },
           {
             "key.annotated_decl" : "let objectId: ObjectIdentifier<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> objectId<\/decl.name>: ObjectIdentifier<\/ref.struct><\/decl.var.type><\/decl.var.local>",
             "key.kind" : "source.lang.swift.decl.var.local",
             "key.length" : 36,
@@ -50329,7 +52340,7 @@
                 "key.offset" : 1833
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> values<\/decl.name>: [ObjectIdentifier<\/ref.struct> : Any<\/syntaxtype.keyword>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
@@ -50370,14 +52381,14 @@
             "Para" : "See `ListEnvironment` for more info and examples."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
-        "key.doc.full_as_xml" : "ListEnvironmentKey<\/Name>s:10ListableUI18ListEnvironmentKeyP<\/USR>public protocol ListEnvironmentKey<\/Declaration>Defines a value stored in the ListEnvironment<\/codeVoice> of a list.<\/Para><\/Abstract>See ListEnvironment<\/codeVoice> for more info and examples.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
+        "key.doc.full_as_xml" : "ListEnvironmentKey<\/Name>s:10ListableUI18ListEnvironmentKeyP<\/USR>public protocol ListEnvironmentKey<\/Declaration>Defines a value stored in the ListEnvironment<\/codeVoice> of a list.<\/Para><\/Abstract>See ListEnvironment<\/codeVoice> for more info and examples.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 73,
         "key.doc.name" : "ListEnvironmentKey",
         "key.doc.type" : "Class",
         "key.doclength" : 121,
         "key.docoffset" : 1887,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListEnvironmentKey<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.protocol",
         "key.length" : 267,
@@ -50395,14 +52406,14 @@
             "key.doc.column" : 20,
             "key.doc.comment" : "The type of value stored by this key.",
             "key.doc.declaration" : "associatedtype Value",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
-            "key.doc.full_as_xml" : "Value<\/Name>s:10ListableUI18ListEnvironmentKeyP5ValueQa<\/USR>associatedtype Value<\/Declaration>The type of value stored by this key.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.doc.full_as_xml" : "Value<\/Name>s:10ListableUI18ListEnvironmentKeyP5ValueQa<\/USR>associatedtype Value<\/Declaration>The type of value stored by this key.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 76,
             "key.doc.name" : "Value",
             "key.doc.type" : "Other",
             "key.doclength" : 42,
             "key.docoffset" : 2054,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> Value<\/decl.name><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 20,
@@ -50425,14 +52436,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The default value that will be vended by an `Environment` for this key if no other value has been set.",
             "key.doc.declaration" : "static var defaultValue: Self.Value { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
-            "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ<\/USR>static var defaultValue: Self.Value { get }<\/Declaration>The default value that will be vended by an Environment<\/codeVoice> for this key if no other value has been set.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 79,
             "key.doc.name" : "defaultValue",
             "key.doc.type" : "Other",
             "key.doclength" : 107,
             "key.docoffset" : 2126,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListEnvironment.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListEnvironment.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Self<\/ref.generic_type_param>.Value<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 43,
@@ -50455,9 +52466,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 8126,
+    "key.length" : 8179,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -50470,7 +52481,7 @@
             "key.offset" : 1370
           }
         ],
-        "key.bodylength" : 6723,
+        "key.bodylength" : 6776,
         "key.bodyoffset" : 1400,
         "key.doc.column" : 15,
         "key.doc.comment" : "\nThe `ListProperties` object describes all of the given values needed to configure\nand display a list on screen. It is usually used in declarative APIs which deal in descriptions of views\n(eg, Blueprint, SwiftUI, `ListViewController`) in place of referencing and managing a view directly.\n\nFor example, in `BlueprintUILists`, you create a Listable `List` element like so:\n```\nList { list in\n    list.appearance = .myAppearance\n    list.layout = .myLayout\n\n    list(\"first section\") { section in\n        section += MyItem()\n        section += MyItem()\n    }\n}\n```\nIn this example, the `list` parameter to the trailing closure is a `ListProperties` object.\n\nOther Uses\n----------\nYou may even find using `ListProperties` useful if you do have a reference to the underlying `ListView`\ninstance (eg in your own `UIViewController`).\n\nIn these cases, you can apply `ListProperties` to a `ListView` by calling one of the\navailable `func configure(with:)` methods. Having a separate method which describes and provides\nall the properties to configure your `ListView` allows for a more singular flow of data through your application,\nand eases in testability.",
@@ -50492,17 +52503,17 @@
             "Para" : "In these cases, you can apply `ListProperties` to a `ListView` by calling one of the available `func configure(with:)` methods. Having a separate method which describes and provides all the properties to configure your `ListView` allows for a more singular flow of data through your application, and eases in testability."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-        "key.doc.full_as_xml" : "ListProperties<\/Name>s:10ListableUI14ListPropertiesV<\/USR>public struct ListProperties<\/Declaration>The ListProperties<\/codeVoice> object describes all of the given values needed to configure and display a list on screen. It is usually used in declarative APIs which deal in descriptions of views (eg, Blueprint, SwiftUI, ListViewController<\/codeVoice>) in place of referencing and managing a view directly.<\/Para><\/Abstract>For example, in BlueprintUILists<\/codeVoice>, you create a Listable List<\/codeVoice> element like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In this example, the list<\/codeVoice> parameter to the trailing closure is a ListProperties<\/codeVoice> object.<\/Para>]]><\/rawHTML>Other Uses]]><\/rawHTML>You may even find using ListProperties<\/codeVoice> useful if you do have a reference to the underlying ListView<\/codeVoice> instance (eg in your own UIViewController<\/codeVoice>).<\/Para>In these cases, you can apply ListProperties<\/codeVoice> to a ListView<\/codeVoice> by calling one of the available func configure(with:)<\/codeVoice> methods. Having a separate method which describes and provides all the properties to configure your ListView<\/codeVoice> allows for a more singular flow of data through your application, and eases in testability.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+        "key.doc.full_as_xml" : "ListProperties<\/Name>s:10ListableUI14ListPropertiesV<\/USR>public struct ListProperties<\/Declaration>The ListProperties<\/codeVoice> object describes all of the given values needed to configure and display a list on screen. It is usually used in declarative APIs which deal in descriptions of views (eg, Blueprint, SwiftUI, ListViewController<\/codeVoice>) in place of referencing and managing a view directly.<\/Para><\/Abstract>For example, in BlueprintUILists<\/codeVoice>, you create a Listable List<\/codeVoice> element like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In this example, the list<\/codeVoice> parameter to the trailing closure is a ListProperties<\/codeVoice> object.<\/Para>]]><\/rawHTML>Other Uses]]><\/rawHTML>You may even find using ListProperties<\/codeVoice> useful if you do have a reference to the underlying ListView<\/codeVoice> instance (eg in your own UIViewController<\/codeVoice>).<\/Para>In these cases, you can apply ListProperties<\/codeVoice> to a ListView<\/codeVoice> by calling one of the available func configure(with:)<\/codeVoice> methods. Having a separate method which describes and provides all the properties to configure your ListView<\/codeVoice> allows for a more singular flow of data through your application, and eases in testability.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 39,
         "key.doc.name" : "ListProperties",
         "key.doc.type" : "Class",
         "key.doclength" : 1258,
         "key.docoffset" : 112,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListProperties<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 6747,
+        "key.length" : 6800,
         "key.name" : "ListProperties",
         "key.namelength" : 14,
         "key.nameoffset" : 1384,
@@ -50532,14 +52543,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "If the changes applied should be animated or not.\nDefaults to `true` if `ListProperties` is created inside an existing `UIView` animation block.",
             "key.doc.declaration" : "public var animatesChanges: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "animatesChanges<\/Name>s:10ListableUI14ListPropertiesV15animatesChangesSbvp<\/USR>public var animatesChanges: Bool<\/Declaration>If the changes applied should be animated or not. Defaults to true<\/codeVoice> if ListProperties<\/codeVoice> is created inside an existing UIView<\/codeVoice> animation block.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "animatesChanges<\/Name>s:10ListableUI14ListPropertiesV15animatesChangesSbvp<\/USR>public var animatesChanges: Bool<\/Declaration>If the changes applied should be animated or not. Defaults to true<\/codeVoice> if ListProperties<\/codeVoice> is created inside an existing UIView<\/codeVoice> animation block.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 47,
             "key.doc.name" : "animatesChanges",
             "key.doc.type" : "Other",
             "key.doclength" : 157,
             "key.docoffset" : 1454,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> animatesChanges<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 26,
@@ -50581,14 +52592,14 @@
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI14ListPropertiesV7contentAA7ContentVvp<\/USR>public var content: Content<\/Declaration>The content displayed by the list. Note that you do not need to reference list.content<\/codeVoice> to add sections to the content. ListProperties<\/codeVoice> has helper methods which allow directly adding sections to the list<\/codeVoice>:<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "content<\/Name>s:10ListableUI14ListPropertiesV7contentAA7ContentVvp<\/USR>public var content: Content<\/Declaration>The content displayed by the list. Note that you do not need to reference list.content<\/codeVoice> to add sections to the content. ListProperties<\/codeVoice> has helper methods which allow directly adding sections to the list<\/codeVoice>:<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 67,
             "key.doc.name" : "content",
             "key.doc.type" : "Other",
             "key.doclength" : 438,
             "key.docoffset" : 1703,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -50617,14 +52628,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The environment associated with the List.",
             "key.doc.declaration" : "public var environment: ListEnvironment",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI14ListPropertiesV11environmentAA0C11EnvironmentVvp<\/USR>public var environment: ListEnvironment<\/Declaration>The environment associated with the List.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "environment<\/Name>s:10ListableUI14ListPropertiesV11environmentAA0C11EnvironmentVvp<\/USR>public var environment: ListEnvironment<\/Declaration>The environment associated with the List.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 70,
             "key.doc.name" : "environment",
             "key.doc.type" : "Other",
             "key.doclength" : 46,
             "key.docoffset" : 2183,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -50655,11 +52666,11 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2891
+                "key.offset" : 2927
               }
             ],
             "key.doc.column" : 16,
-            "key.doc.comment" : "The layout type to use with the list. Defaults to `.list()`, aka a list\nwith no spacing and full width headers, footers, and content.\n\nIf you would like to change the layout to either a new type, or provide\na `list` with different configuration options, assign it here.\n\n```\nlist.layout = .list {\n    $0.stickySectionHeaders = true\n\n    $0.layout.padding = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)\n    $0.layout.itemSpacing = 10.0\n}\n```",
+            "key.doc.comment" : "The layout type to use with the list. Defaults to `.table()`, aka a table\nwith no spacing and full width headers, footers, and content – basically a plain table view.\n\nIf you would like to change the layout to either a new type, or provide\na `list` with different configuration options, assign it here.\n\n```\nlist.layout = .table {\n    $0.stickySectionHeaders = true\n\n    $0.layout.padding = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)\n    $0.layout.itemSpacing = 10.0\n}\n```",
             "key.doc.declaration" : "public var layout: LayoutDescription",
             "key.doc.discussion" : [
               {
@@ -50669,21 +52680,21 @@
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI14ListPropertiesV6layoutAA17LayoutDescriptionVvp<\/USR>public var layout: LayoutDescription<\/Declaration>The layout type to use with the list. Defaults to .list()<\/codeVoice>, aka a list with no spacing and full width headers, footers, and content.<\/Para><\/Abstract>If you would like to change the layout to either a new type, or provide a list<\/codeVoice> with different configuration options, assign it here.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI14ListPropertiesV6layoutAA17LayoutDescriptionVvp<\/USR>public var layout: LayoutDescription<\/Declaration>The layout type to use with the list. Defaults to .table()<\/codeVoice>, aka a table with no spacing and full width headers, footers, and content – basically a plain table view.<\/Para><\/Abstract>If you would like to change the layout to either a new type, or provide a list<\/codeVoice> with different configuration options, assign it here.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 90,
             "key.doc.name" : "layout",
             "key.doc.type" : "Other",
-            "key.doclength" : 556,
+            "key.doclength" : 592,
             "key.docoffset" : 2331,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: LayoutDescription<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 30,
             "key.name" : "layout",
             "key.namelength" : 6,
-            "key.nameoffset" : 2902,
-            "key.offset" : 2898,
+            "key.nameoffset" : 2938,
+            "key.offset" : 2934,
             "key.parsed_declaration" : "public var layout : LayoutDescription",
             "key.parsed_scope.end" : 90,
             "key.parsed_scope.start" : 90,
@@ -50699,27 +52710,27 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2983
+                "key.offset" : 3019
               }
             ],
             "key.doc.column" : 16,
             "key.doc.comment" : "The appearance to use with the list.",
             "key.doc.declaration" : "public var appearance: Appearance",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "appearance<\/Name>s:10ListableUI14ListPropertiesV10appearanceAA10AppearanceVvp<\/USR>public var appearance: Appearance<\/Declaration>The appearance to use with the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "appearance<\/Name>s:10ListableUI14ListPropertiesV10appearanceAA10AppearanceVvp<\/USR>public var appearance: Appearance<\/Declaration>The appearance to use with the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 93,
             "key.doc.name" : "appearance",
             "key.doc.type" : "Other",
             "key.doclength" : 41,
-            "key.docoffset" : 2938,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 2974,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
             "key.name" : "appearance",
             "key.namelength" : 10,
-            "key.nameoffset" : 2994,
-            "key.offset" : 2990,
+            "key.nameoffset" : 3030,
+            "key.offset" : 3026,
             "key.parsed_declaration" : "public var appearance : Appearance",
             "key.parsed_scope.end" : 93,
             "key.parsed_scope.start" : 93,
@@ -50735,27 +52746,27 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 3080
+                "key.offset" : 3116
               }
             ],
             "key.doc.column" : 16,
             "key.doc.comment" : "The scroll insets to apply to the list view.",
             "key.doc.declaration" : "public var scrollIndicatorInsets: UIEdgeInsets",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "scrollIndicatorInsets<\/Name>s:10ListableUI14ListPropertiesV21scrollIndicatorInsetsSo06UIEdgeG0Vvp<\/USR>public var scrollIndicatorInsets: UIEdgeInsets<\/Declaration>The scroll insets to apply to the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "scrollIndicatorInsets<\/Name>s:10ListableUI14ListPropertiesV21scrollIndicatorInsetsSo06UIEdgeG0Vvp<\/USR>public var scrollIndicatorInsets: UIEdgeInsets<\/Declaration>The scroll insets to apply to the list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 96,
             "key.doc.name" : "scrollIndicatorInsets",
             "key.doc.type" : "Other",
             "key.doclength" : 49,
-            "key.docoffset" : 3027,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 3063,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollIndicatorInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 40,
             "key.name" : "scrollIndicatorInsets",
             "key.namelength" : 21,
-            "key.nameoffset" : 3091,
-            "key.offset" : 3087,
+            "key.nameoffset" : 3127,
+            "key.offset" : 3123,
             "key.parsed_declaration" : "public var scrollIndicatorInsets : UIEdgeInsets",
             "key.parsed_scope.end" : 96,
             "key.parsed_scope.start" : 96,
@@ -50770,7 +52781,7 @@
             "key.name" : "MARK: Behavior",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 3147
+            "key.offset" : 3183
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -50779,7 +52790,7 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 3645
+                "key.offset" : 3681
               }
             ],
             "key.doc.column" : 16,
@@ -50790,21 +52801,21 @@
                 "Para" : "Note that some of the parameters within `Behavior` are not authoritative; they may be overridden by the provided `layout`. For example, even if your `behavior` disables scroll view paging, the `.paged` layout will enable it."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "behavior<\/Name>s:10ListableUI14ListPropertiesV8behaviorAA8BehaviorVvp<\/USR>public var behavior: Behavior<\/Declaration>The various behavior options to apply to the list, which affect how the user will interact with the list view. This includes keyboard dismissal, selection mode, underflow behavior, etc.<\/Para><\/Abstract>Note that some of the parameters within Behavior<\/codeVoice> are not authoritative; they may be overridden by the provided layout<\/codeVoice>. For example, even if your behavior<\/codeVoice> disables scroll view paging, the .paged<\/codeVoice> layout will enable it.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "behavior<\/Name>s:10ListableUI14ListPropertiesV8behaviorAA8BehaviorVvp<\/USR>public var behavior: Behavior<\/Declaration>The various behavior options to apply to the list, which affect how the user will interact with the list view. This includes keyboard dismissal, selection mode, underflow behavior, etc.<\/Para><\/Abstract>Note that some of the parameters within Behavior<\/codeVoice> are not authoritative; they may be overridden by the provided layout<\/codeVoice>. For example, even if your behavior<\/codeVoice> disables scroll view paging, the .paged<\/codeVoice> layout will enable it.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 109,
             "key.doc.name" : "behavior",
             "key.doc.type" : "Other",
             "key.doclength" : 463,
-            "key.docoffset" : 3178,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 3214,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
             "key.name" : "behavior",
             "key.namelength" : 8,
-            "key.nameoffset" : 3656,
-            "key.offset" : 3652,
+            "key.nameoffset" : 3692,
+            "key.offset" : 3688,
             "key.parsed_declaration" : "public var behavior : Behavior",
             "key.parsed_scope.end" : 109,
             "key.parsed_scope.start" : 109,
@@ -50819,7 +52830,7 @@
             "key.name" : "MARK: Reading State & Performing Actions",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 3695
+            "key.offset" : 3731
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -50828,27 +52839,27 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4023
+                "key.offset" : 4059
               }
             ],
             "key.doc.column" : 16,
             "key.doc.comment" : "The state reader to use with your list. A `ListStateObserver`\nallows for observing changes to the list as they happen,\neither due to user interaction, content update, view hierarchy changes, etc.\nSee the `ListStateObserver` type for more.",
             "key.doc.declaration" : "public var stateObserver: ListStateObserver",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "stateObserver<\/Name>s:10ListableUI14ListPropertiesV13stateObserverAA0c5StateF0Vvp<\/USR>public var stateObserver: ListStateObserver<\/Declaration>The state reader to use with your list. A ListStateObserver<\/codeVoice> allows for observing changes to the list as they happen, either due to user interaction, content update, view hierarchy changes, etc. See the ListStateObserver<\/codeVoice> type for more.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "stateObserver<\/Name>s:10ListableUI14ListPropertiesV13stateObserverAA0c5StateF0Vvp<\/USR>public var stateObserver: ListStateObserver<\/Declaration>The state reader to use with your list. A ListStateObserver<\/codeVoice> allows for observing changes to the list as they happen, either due to user interaction, content update, view hierarchy changes, etc. See the ListStateObserver<\/codeVoice> type for more.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 119,
             "key.doc.name" : "stateObserver",
             "key.doc.type" : "Other",
             "key.doclength" : 267,
-            "key.docoffset" : 3752,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 3788,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stateObserver<\/decl.name>: ListStateObserver<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 37,
             "key.name" : "stateObserver",
             "key.namelength" : 13,
-            "key.nameoffset" : 4034,
-            "key.offset" : 4030,
+            "key.nameoffset" : 4070,
+            "key.offset" : 4066,
             "key.parsed_declaration" : "public var stateObserver : ListStateObserver",
             "key.parsed_scope.end" : 119,
             "key.parsed_scope.start" : 119,
@@ -50864,7 +52875,7 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4501
+                "key.offset" : 4537
               }
             ],
             "key.doc.column" : 16,
@@ -50875,21 +52886,21 @@
                 "Para" : "Note that you can only associate one `ListActions` with a list at a given time. When a new instance is provided, the old one becomes a no-op instance; calling methods on it will have no effect."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI14ListPropertiesV7actionsAA0C7ActionsCSgvp<\/USR>public var actions: ListActions?<\/Declaration>The actions instance to use to control the list, eg to scroll to a given row or enable interactive view transitions. See the ListActions<\/codeVoice> type for more information.<\/Para><\/Abstract>Note that you can only associate one ListActions<\/codeVoice> with a list at a given time. When a new instance is provided, the old one becomes a no-op instance; calling methods on it will have no effect.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI14ListPropertiesV7actionsAA0C7ActionsCSgvp<\/USR>public var actions: ListActions?<\/Declaration>The actions instance to use to control the list, eg to scroll to a given row or enable interactive view transitions. See the ListActions<\/codeVoice> type for more information.<\/Para><\/Abstract>Note that you can only associate one ListActions<\/codeVoice> with a list at a given time. When a new instance is provided, the old one becomes a no-op instance; calling methods on it will have no effect.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 129,
             "key.doc.name" : "actions",
             "key.doc.type" : "Other",
             "key.doclength" : 420,
-            "key.docoffset" : 4077,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 4113,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 26,
             "key.name" : "actions",
             "key.namelength" : 7,
-            "key.nameoffset" : 4512,
-            "key.offset" : 4508,
+            "key.nameoffset" : 4548,
+            "key.offset" : 4544,
             "key.parsed_declaration" : "public var actions : ListActions?",
             "key.parsed_scope.end" : 129,
             "key.parsed_scope.start" : 129,
@@ -50905,27 +52916,27 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4709
+                "key.offset" : 4745
               }
             ],
             "key.doc.column" : 16,
             "key.doc.comment" : "The auto scroll action to apply to the list. This allows you to\nscroll to a given item on insert depending on the current state\nof the view.",
             "key.doc.declaration" : "public var autoScrollAction: AutoScrollAction",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "autoScrollAction<\/Name>s:10ListableUI14ListPropertiesV16autoScrollActionAA04AutofG0Ovp<\/USR>public var autoScrollAction: AutoScrollAction<\/Declaration>The auto scroll action to apply to the list. This allows you to scroll to a given item on insert depending on the current state of the view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "autoScrollAction<\/Name>s:10ListableUI14ListPropertiesV16autoScrollActionAA04AutofG0Ovp<\/USR>public var autoScrollAction: AutoScrollAction<\/Declaration>The auto scroll action to apply to the list. This allows you to scroll to a given item on insert depending on the current state of the view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 134,
             "key.doc.name" : "autoScrollAction",
             "key.doc.type" : "Other",
             "key.doclength" : 161,
-            "key.docoffset" : 4544,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 4580,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> autoScrollAction<\/decl.name>: AutoScrollAction<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
             "key.name" : "autoScrollAction",
             "key.namelength" : 16,
-            "key.nameoffset" : 4720,
-            "key.offset" : 4716,
+            "key.nameoffset" : 4756,
+            "key.offset" : 4752,
             "key.parsed_declaration" : "public var autoScrollAction : AutoScrollAction",
             "key.parsed_scope.end" : 134,
             "key.parsed_scope.start" : 134,
@@ -50940,7 +52951,7 @@
             "key.name" : "MARK: Identifiers",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 4775
+            "key.offset" : 4811
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -50949,27 +52960,27 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4888
+                "key.offset" : 4924
               }
             ],
             "key.doc.column" : 16,
             "key.doc.comment" : "The accessibility identifier assigned to the inner `UICollectionView`.",
             "key.doc.declaration" : "public var accessibilityIdentifier: String?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "accessibilityIdentifier<\/Name>s:10ListableUI14ListPropertiesV23accessibilityIdentifierSSSgvp<\/USR>public var accessibilityIdentifier: String?<\/Declaration>The accessibility identifier assigned to the inner UICollectionView<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "accessibilityIdentifier<\/Name>s:10ListableUI14ListPropertiesV23accessibilityIdentifierSSSgvp<\/USR>public var accessibilityIdentifier: String?<\/Declaration>The accessibility identifier assigned to the inner UICollectionView<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 141,
             "key.doc.name" : "accessibilityIdentifier",
             "key.doc.type" : "Other",
             "key.doclength" : 75,
-            "key.docoffset" : 4809,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 4845,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> accessibilityIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 36,
             "key.name" : "accessibilityIdentifier",
             "key.namelength" : 23,
-            "key.nameoffset" : 4899,
-            "key.offset" : 4895,
+            "key.nameoffset" : 4935,
+            "key.offset" : 4931,
             "key.parsed_declaration" : "public var accessibilityIdentifier: String?",
             "key.parsed_scope.end" : 141,
             "key.parsed_scope.start" : 141,
@@ -50985,27 +52996,27 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5080
+                "key.offset" : 5116
               }
             ],
             "key.doc.column" : 16,
             "key.doc.comment" : "The debugging identifier assigned to the list. Used for `os_signpost` integration\nyou can observe through Instruments.app.",
             "key.doc.declaration" : "public var debuggingIdentifier: String?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "debuggingIdentifier<\/Name>s:10ListableUI14ListPropertiesV19debuggingIdentifierSSSgvp<\/USR>public var debuggingIdentifier: String?<\/Declaration>The debugging identifier assigned to the list. Used for os_signpost<\/codeVoice> integration you can observe through Instruments.app.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "debuggingIdentifier<\/Name>s:10ListableUI14ListPropertiesV19debuggingIdentifierSSSgvp<\/USR>public var debuggingIdentifier: String?<\/Declaration>The debugging identifier assigned to the list. Used for os_signpost<\/codeVoice> integration you can observe through Instruments.app.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 145,
             "key.doc.name" : "debuggingIdentifier",
             "key.doc.type" : "Other",
             "key.doclength" : 135,
-            "key.docoffset" : 4941,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 4977,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 32,
             "key.name" : "debuggingIdentifier",
             "key.namelength" : 19,
-            "key.nameoffset" : 5091,
-            "key.offset" : 5087,
+            "key.nameoffset" : 5127,
+            "key.offset" : 5123,
             "key.parsed_declaration" : "public var debuggingIdentifier: String?",
             "key.parsed_scope.end" : 145,
             "key.parsed_scope.start" : 145,
@@ -51020,7 +53031,7 @@
             "key.name" : "MARK: Initialization",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 5139
+            "key.offset" : 5175
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -51029,17 +53040,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5172
+                "key.offset" : 5208
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListProperties<\/ref.struct>.Build<\/decl.name> = (inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 46,
             "key.name" : "Build",
             "key.namelength" : 5,
-            "key.nameoffset" : 5189,
-            "key.offset" : 5179,
+            "key.nameoffset" : 5225,
+            "key.offset" : 5215,
             "key.parsed_declaration" : "public typealias Build = (inout ListProperties) -> ()",
             "key.parsed_scope.end" : 151,
             "key.parsed_scope.start" : 151,
@@ -51054,29 +53065,29 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5305
+                "key.offset" : 5341
               }
             ],
-            "key.bodylength" : 378,
-            "key.bodyoffset" : 5376,
+            "key.bodylength" : 379,
+            "key.bodyoffset" : 5412,
             "key.doc.column" : 24,
             "key.doc.comment" : "An instance of `ListProperties` with sensible default values.",
             "key.doc.declaration" : "public static func `default`(with builder: Build = { _ in }) -> ListableUI.ListProperties",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "default(with:)<\/Name>s:10ListableUI14ListPropertiesV7default4withACyACzXE_tFZ<\/USR>public static func `default`(with builder: Build = { _ in }) -> ListableUI.ListProperties<\/Declaration>An instance of ListProperties<\/codeVoice> with sensible default values.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "default(with:)<\/Name>s:10ListableUI14ListPropertiesV7default4withACyACzXE_tFZ<\/USR>public static func `default`(with builder: Build = { _ in }) -> ListableUI.ListProperties<\/Declaration>An instance of ListProperties<\/codeVoice> with sensible default values.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 154,
             "key.doc.name" : "default(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 66,
-            "key.docoffset" : 5235,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 5271,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> `default`<\/decl.name>(with<\/decl.var.parameter.argument_label> builder<\/decl.var.parameter.name>: Build<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> ListProperties<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
-            "key.length" : 443,
+            "key.length" : 444,
             "key.name" : "default(with:)",
             "key.namelength" : 42,
-            "key.nameoffset" : 5324,
-            "key.offset" : 5312,
+            "key.nameoffset" : 5360,
+            "key.offset" : 5348,
             "key.parsed_declaration" : "public static func `default`(with builder : Build = { _ in }) -> Self",
             "key.parsed_scope.end" : 166,
             "key.parsed_scope.start" : 154,
@@ -51094,29 +53105,29 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5841
+                "key.offset" : 5878
               }
             ],
             "key.bodylength" : 544,
-            "key.bodyoffset" : 6183,
+            "key.bodyoffset" : 6220,
             "key.doc.column" : 12,
             "key.doc.comment" : "Create a new instance of `ListProperties` with the provided values.",
             "key.doc.declaration" : "public init(animatesChanges: Bool, layout: LayoutDescription, appearance: Appearance, scrollIndicatorInsets: UIEdgeInsets, behavior: Behavior, autoScrollAction: AutoScrollAction, accessibilityIdentifier: String?, debuggingIdentifier: String?, build: Build)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "init(animatesChanges:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:accessibilityIdentifier:debuggingIdentifier:build:)<\/Name>s:10ListableUI14ListPropertiesV15animatesChanges6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction23accessibilityIdentifier09debuggingQ05buildACSb_AA17LayoutDescriptionVAA10AppearanceVSo06UIEdgeK0VAA8BehaviorVAA04AutonO0OSSSgAWyACzXEtcfc<\/USR>public init(animatesChanges: Bool, layout: LayoutDescription, appearance: Appearance, scrollIndicatorInsets: UIEdgeInsets, behavior: Behavior, autoScrollAction: AutoScrollAction, accessibilityIdentifier: String?, debuggingIdentifier: String?, build: Build)<\/Declaration>Create a new instance of ListProperties<\/codeVoice> with the provided values.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "init(animatesChanges:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:accessibilityIdentifier:debuggingIdentifier:build:)<\/Name>s:10ListableUI14ListPropertiesV15animatesChanges6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction23accessibilityIdentifier09debuggingQ05buildACSb_AA17LayoutDescriptionVAA10AppearanceVSo06UIEdgeK0VAA8BehaviorVAA04AutonO0OSSSgAWyACzXEtcfc<\/USR>public init(animatesChanges: Bool, layout: LayoutDescription, appearance: Appearance, scrollIndicatorInsets: UIEdgeInsets, behavior: Behavior, autoScrollAction: AutoScrollAction, accessibilityIdentifier: String?, debuggingIdentifier: String?, build: Build)<\/Declaration>Create a new instance of ListProperties<\/codeVoice> with the provided values.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 169,
             "key.doc.name" : "init(animatesChanges:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:accessibilityIdentifier:debuggingIdentifier:build:)",
             "key.doc.type" : "Function",
             "key.doclength" : 72,
-            "key.docoffset" : 5765,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 5802,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(animatesChanges<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: LayoutDescription<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, scrollIndicatorInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, behavior<\/decl.var.parameter.argument_label>: Behavior<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, autoScrollAction<\/decl.var.parameter.argument_label>: AutoScrollAction<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, accessibilityIdentifier<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, debuggingIdentifier<\/decl.var.parameter.argument_label>: String<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 880,
             "key.name" : "init(animatesChanges:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:accessibilityIdentifier:debuggingIdentifier:build:)",
             "key.namelength" : 333,
-            "key.nameoffset" : 5848,
-            "key.offset" : 5848,
+            "key.nameoffset" : 5885,
+            "key.offset" : 5885,
             "key.parsed_declaration" : "public init(\n    animatesChanges: Bool,\n    layout : LayoutDescription,\n    appearance : Appearance,\n    scrollIndicatorInsets : UIEdgeInsets,\n    behavior : Behavior,\n    autoScrollAction : AutoScrollAction,\n    accessibilityIdentifier: String?,\n    debuggingIdentifier: String?,\n    build : Build\n)",
             "key.parsed_scope.end" : 195,
             "key.parsed_scope.start" : 169,
@@ -51133,7 +53144,7 @@
             "key.name" : "MARK: Mutating Content",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 6748
+            "key.offset" : 6785
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -51142,34 +53153,34 @@
               {
                 "key.attribute" : "source.decl.attribute.mutating",
                 "key.length" : 8,
-                "key.offset" : 6880
+                "key.offset" : 6917
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 6873
+                "key.offset" : 6910
               }
             ],
             "key.bodylength" : 28,
-            "key.bodyoffset" : 6925,
+            "key.bodyoffset" : 6962,
             "key.doc.column" : 26,
             "key.doc.comment" : "Updates the `ListProperties` object with the changes in the provided builder.",
             "key.doc.declaration" : "public mutating func modify(using builder: Build)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "modify(using:)<\/Name>s:10ListableUI14ListPropertiesV6modify5usingyyACzXE_tF<\/USR>public mutating func modify(using builder: Build)<\/Declaration>Updates the ListProperties<\/codeVoice> object with the changes in the provided builder.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "modify(using:)<\/Name>s:10ListableUI14ListPropertiesV6modify5usingyyACzXE_tF<\/USR>public mutating func modify(using builder: Build)<\/Declaration>Updates the ListProperties<\/codeVoice> object with the changes in the provided builder.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 202,
             "key.doc.name" : "modify(using:)",
             "key.doc.type" : "Function",
             "key.doclength" : 82,
-            "key.docoffset" : 6787,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 6824,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> modify<\/decl.name>(using<\/decl.var.parameter.argument_label> builder<\/decl.var.parameter.name>: Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 65,
             "key.name" : "modify(using:)",
             "key.namelength" : 29,
-            "key.nameoffset" : 6894,
-            "key.offset" : 6889,
+            "key.nameoffset" : 6931,
+            "key.offset" : 6926,
             "key.parsed_declaration" : "public mutating func modify(using builder : Build)",
             "key.parsed_scope.end" : 204,
             "key.parsed_scope.start" : 202,
@@ -51187,43 +53198,43 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 7059
+                "key.offset" : 7096
               }
             ],
             "key.bodylength" : 72,
-            "key.bodyoffset" : 7122,
+            "key.bodyoffset" : 7159,
             "key.doc.column" : 17,
             "key.doc.comment" : "Creates a new `ListProperties` object modified by the changes in the provided builder.",
             "key.doc.declaration" : "public func modified(using builder: Build) -> ListProperties",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "modified(using:)<\/Name>s:10ListableUI14ListPropertiesV8modified5usingACyACzXE_tF<\/USR>public func modified(using builder: Build) -> ListProperties<\/Declaration>Creates a new ListProperties<\/codeVoice> object modified by the changes in the provided builder.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "modified(using:)<\/Name>s:10ListableUI14ListPropertiesV8modified5usingACyACzXE_tF<\/USR>public func modified(using builder: Build) -> ListProperties<\/Declaration>Creates a new ListProperties<\/codeVoice> object modified by the changes in the provided builder.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 207,
             "key.doc.name" : "modified(using:)",
             "key.doc.type" : "Function",
             "key.doclength" : 91,
-            "key.docoffset" : 6964,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 7001,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> modified<\/decl.name>(using<\/decl.var.parameter.argument_label> builder<\/decl.var.parameter.name>: Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListProperties<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 129,
             "key.name" : "modified(using:)",
             "key.namelength" : 31,
-            "key.nameoffset" : 7071,
-            "key.offset" : 7066,
+            "key.nameoffset" : 7108,
+            "key.offset" : 7103,
             "key.parsed_declaration" : "public func modified(using builder : Build) -> ListProperties",
             "key.parsed_scope.end" : 211,
             "key.parsed_scope.start" : 207,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var copy: ListProperties<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> copy<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 15,
                 "key.name" : "copy",
                 "key.namelength" : 4,
-                "key.nameoffset" : 7135,
-                "key.offset" : 7131,
+                "key.nameoffset" : 7172,
+                "key.offset" : 7168,
                 "key.parsed_declaration" : "var copy = self",
                 "key.parsed_scope.end" : 208,
                 "key.parsed_scope.start" : 208,
@@ -51243,34 +53254,34 @@
               {
                 "key.attribute" : "source.decl.attribute.mutating",
                 "key.length" : 8,
-                "key.offset" : 7257
+                "key.offset" : 7294
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 7250
+                "key.offset" : 7287
               }
             ],
             "key.bodylength" : 51,
-            "key.bodyoffset" : 7301,
+            "key.bodyoffset" : 7338,
             "key.doc.column" : 26,
             "key.doc.comment" : "Adds a new section to the `content`.",
             "key.doc.declaration" : "public mutating func add(_ section: Section)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "add(_:)<\/Name>s:10ListableUI14ListPropertiesV3addyyAA7SectionVF<\/USR>public mutating func add(_ section: Section)<\/Declaration>Adds a new section to the content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "add(_:)<\/Name>s:10ListableUI14ListPropertiesV3addyyAA7SectionVF<\/USR>public mutating func add(_ section: Section)<\/Declaration>Adds a new section to the content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 214,
             "key.doc.name" : "add(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 41,
-            "key.docoffset" : 7205,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 7242,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(_<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 87,
             "key.name" : "add(_:)",
             "key.namelength" : 24,
-            "key.nameoffset" : 7271,
-            "key.offset" : 7266,
+            "key.nameoffset" : 7308,
+            "key.offset" : 7303,
             "key.parsed_declaration" : "public mutating func add(_ section : Section)",
             "key.parsed_scope.end" : 217,
             "key.parsed_scope.start" : 214,
@@ -51288,29 +53299,29 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 7408
+                "key.offset" : 7445
               }
             ],
             "key.bodylength" : 26,
-            "key.bodyoffset" : 7479,
+            "key.bodyoffset" : 7516,
             "key.doc.column" : 24,
             "key.doc.comment" : "Adds a new section to the `content`.",
             "key.doc.declaration" : "public static func += (lhs: inout ListProperties, rhs: Section)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI14ListPropertiesV2peoiyyACz_AA7SectionVtFZ<\/USR>public static func += (lhs: inout ListProperties, rhs: Section)<\/Declaration>Adds a new section to the content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI14ListPropertiesV2peoiyyACz_AA7SectionVtFZ<\/USR>public static func += (lhs: inout ListProperties, rhs: Section)<\/Declaration>Adds a new section to the content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 220,
             "key.doc.name" : "+=(_:_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 41,
-            "key.docoffset" : 7363,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 7400,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 91,
             "key.name" : "+=(_:_:)",
             "key.namelength" : 46,
-            "key.nameoffset" : 7427,
-            "key.offset" : 7415,
+            "key.nameoffset" : 7464,
+            "key.offset" : 7452,
             "key.parsed_declaration" : "public static func += (lhs : inout ListProperties, rhs : Section)",
             "key.parsed_scope.end" : 223,
             "key.parsed_scope.start" : 220,
@@ -51445,13 +53456,13 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var lhs: inout ListProperties<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>",
                 "key.kind" : "source.lang.swift.decl.var.parameter",
                 "key.length" : 3,
                 "key.name" : "lhs",
-                "key.offset" : 7431,
-                "key.parent_loc" : 7427,
+                "key.offset" : 7468,
+                "key.parent_loc" : 7464,
                 "key.parsed_declaration" : "public static func += (lhs",
                 "key.parsed_scope.end" : 220,
                 "key.parsed_scope.start" : 220,
@@ -51471,29 +53482,29 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 7570
+                "key.offset" : 7607
               }
             ],
             "key.bodylength" : 41,
-            "key.bodyoffset" : 7643,
+            "key.bodyoffset" : 7680,
             "key.doc.column" : 24,
             "key.doc.comment" : "Adds a list of new sections to the `content`.",
             "key.doc.declaration" : "public static func += (lhs: inout ListProperties, rhs: [Section])",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI14ListPropertiesV2peoiyyACz_SayAA7SectionVGtFZ<\/USR>public static func += (lhs: inout ListProperties, rhs: [Section])<\/Declaration>Adds a list of new sections to the content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "+=(_:_:)<\/Name>s:10ListableUI14ListPropertiesV2peoiyyACz_SayAA7SectionVGtFZ<\/USR>public static func += (lhs: inout ListProperties, rhs: [Section])<\/Declaration>Adds a list of new sections to the content<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 226,
             "key.doc.name" : "+=(_:_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 50,
-            "key.docoffset" : 7516,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+            "key.docoffset" : 7553,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [Section<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 108,
             "key.name" : "+=(_:_:)",
             "key.namelength" : 48,
-            "key.nameoffset" : 7589,
-            "key.offset" : 7577,
+            "key.nameoffset" : 7626,
+            "key.offset" : 7614,
             "key.parsed_declaration" : "public static func += (lhs : inout ListProperties, rhs : [Section])",
             "key.parsed_scope.end" : 229,
             "key.parsed_scope.start" : 226,
@@ -51628,13 +53639,13 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var lhs: inout ListProperties<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>",
                 "key.kind" : "source.lang.swift.decl.var.parameter",
                 "key.length" : 3,
                 "key.name" : "lhs",
-                "key.offset" : 7593,
-                "key.parent_loc" : 7589,
+                "key.offset" : 7630,
+                "key.parent_loc" : 7626,
                 "key.parsed_declaration" : "public static func += (lhs",
                 "key.parsed_scope.end" : 226,
                 "key.parsed_scope.start" : 226,
@@ -51649,45 +53660,45 @@
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public mutating func callAsFunction<Identifier>(_ identifier: Identifier<\/Type>, build: Section<\/Type>.Build<\/Type>) where Identifier : Hashable<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public mutating func callAsFunction<Identifier>(_ identifier: Identifier<\/Type>, configure: Section<\/Type>.Configure<\/Type>) where Identifier : Hashable<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.mutating",
                 "key.length" : 8,
-                "key.offset" : 7961
+                "key.offset" : 7998
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 7954
+                "key.offset" : 7991
               }
             ],
-            "key.bodylength" : 55,
-            "key.bodyoffset" : 8066,
+            "key.bodylength" : 63,
+            "key.bodyoffset" : 8111,
             "key.doc.column" : 26,
             "key.doc.comment" : "Allows streamlined creation of sections when building a list.\n\nExample\n-------\n```\nlistView.configure { list in\n    list(\"section-id\") { section in\n        ...\n    }\n}\n```",
-            "key.doc.declaration" : "public mutating func callAsFunction(_ identifier: Identifier, build: Section.Build) where Identifier : Hashable",
+            "key.doc.declaration" : "public mutating func callAsFunction(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable",
             "key.doc.discussion" : [
               {
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.doc.full_as_xml" : "callAsFunction(_:build:)<\/Name>s:10ListableUI14ListPropertiesV14callAsFunction_5buildyx_yAA7SectionVzXEtSHRzlF<\/USR>public mutating func callAsFunction<Identifier>(_ identifier: Identifier, build: Section.Build) where Identifier : Hashable<\/Declaration>Allows streamlined creation of sections when building a list.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.doc.full_as_xml" : "callAsFunction(_:configure:)<\/Name>s:10ListableUI14ListPropertiesV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF<\/USR>public mutating func callAsFunction<Identifier>(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable<\/Declaration>Allows streamlined creation of sections when building a list.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 242,
-            "key.doc.name" : "callAsFunction(_:build:)",
+            "key.doc.name" : "callAsFunction(_:configure:)",
             "key.doc.type" : "Function",
             "key.doclength" : 255,
-            "key.docoffset" : 7695,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> callAsFunction<\/decl.name><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: Section<\/ref.struct>.Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>",
+            "key.docoffset" : 7732,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> callAsFunction<\/decl.name><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Section<\/ref.struct>.Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 152,
-            "key.name" : "callAsFunction(_:build:)",
-            "key.namelength" : 85,
-            "key.nameoffset" : 7975,
-            "key.offset" : 7970,
-            "key.parsed_declaration" : "public mutating func callAsFunction(_ identifier : Identifier, build : Section.Build)",
+            "key.length" : 168,
+            "key.name" : "callAsFunction(_:configure:)",
+            "key.namelength" : 93,
+            "key.nameoffset" : 8012,
+            "key.offset" : 8007,
+            "key.parsed_declaration" : "public mutating func callAsFunction(_ identifier : Identifier, configure : Section.Configure)",
             "key.parsed_scope.end" : 245,
             "key.parsed_scope.start" : 242,
             "key.substructure" : [
@@ -51697,10 +53708,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 8,
-                    "key.offset" : 8001
+                    "key.offset" : 8038
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListProperties.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListProperties.swift",
                 "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -51711,19 +53722,19 @@
                 "key.length" : 19,
                 "key.name" : "Identifier",
                 "key.namelength" : 10,
-                "key.nameoffset" : 7990,
-                "key.offset" : 7990,
+                "key.nameoffset" : 8027,
+                "key.offset" : 8027,
                 "key.parsed_declaration" : "public mutating func callAsFunction (inout ListProperties) -> (Identifier, (inout Section) -> ()) -> ()",
-            "key.typeusr" : "$s_5buildyx_y10ListableUI7SectionVzXEtcSHRzluD",
-            "key.usr" : "s:10ListableUI14ListPropertiesV14callAsFunction_5buildyx_yAA7SectionVzXEtSHRzlF"
+            "key.typeusr" : "$s_9configureyx_y10ListableUI7SectionVzXEtcSHRzluD",
+            "key.usr" : "s:10ListableUI14ListPropertiesV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF"
           }
         ],
         "key.typename" : "ListProperties.Type",
@@ -51733,7 +53744,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 6910,
     "key.offset" : 0,
@@ -51758,8 +53769,8 @@
             "Para" : "This is useful within callback APIs where you as a developer may want to perform different behavior based on the position of the list, eg, do you want to allow an auto-scroll action, etc."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
-        "key.doc.full_as_xml" : "ListScrollPositionInfo<\/Name>s:10ListableUI22ListScrollPositionInfoV<\/USR>public struct ListScrollPositionInfo : Equatable<\/Declaration>Information about the current scroll position of a list, including which edges of the list are visible, and which items are visible.<\/Para><\/Abstract>This is useful within callback APIs where you as a developer may want to perform different behavior based on the position of the list, eg, do you want to allow an auto-scroll action, etc.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+        "key.doc.full_as_xml" : "ListScrollPositionInfo<\/Name>s:10ListableUI22ListScrollPositionInfoV<\/USR>public struct ListScrollPositionInfo : Equatable<\/Declaration>Information about the current scroll position of a list, including which edges of the list are visible, and which items are visible.<\/Para><\/Abstract>This is useful within callback APIs where you as a developer may want to perform different behavior based on the position of the list, eg, do you want to allow an auto-scroll action, etc.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 17,
         "key.doc.name" : "ListScrollPositionInfo",
         "key.doc.type" : "Class",
@@ -51772,7 +53783,7 @@
             "key.offset" : 503
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListScrollPositionInfo<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -51810,14 +53821,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "Which items within the list are currently visible.",
             "key.doc.declaration" : "public var visibleItems: Set",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
-            "key.doc.full_as_xml" : "visibleItems<\/Name>s:10ListableUI22ListScrollPositionInfoV12visibleItemsShyAA13AnyIdentifierCGvp<\/USR>public var visibleItems: Set<AnyIdentifier><\/Declaration>Which items within the list are currently visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.doc.full_as_xml" : "visibleItems<\/Name>s:10ListableUI22ListScrollPositionInfoV12visibleItemsShyAA13AnyIdentifierCGvp<\/USR>public var visibleItems: Set<AnyIdentifier><\/Declaration>Which items within the list are currently visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 24,
             "key.doc.name" : "visibleItems",
             "key.doc.type" : "Other",
             "key.doclength" : 55,
             "key.docoffset" : 563,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> visibleItems<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 37,
@@ -51846,14 +53857,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "If the first item list is partially visible.",
             "key.doc.declaration" : "public var isFirstItemVisible: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
-            "key.doc.full_as_xml" : "isFirstItemVisible<\/Name>s:10ListableUI22ListScrollPositionInfoV18isFirstItemVisibleSbvp<\/USR>public var isFirstItemVisible: Bool<\/Declaration>If the first item list is partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.doc.full_as_xml" : "isFirstItemVisible<\/Name>s:10ListableUI22ListScrollPositionInfoV18isFirstItemVisibleSbvp<\/USR>public var isFirstItemVisible: Bool<\/Declaration>If the first item list is partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 27,
             "key.doc.name" : "isFirstItemVisible",
             "key.doc.type" : "Other",
             "key.doclength" : 49,
             "key.docoffset" : 676,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isFirstItemVisible<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
@@ -51882,14 +53893,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "If the last item list is partially visible.",
             "key.doc.declaration" : "public var isLastItemVisible: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
-            "key.doc.full_as_xml" : "isLastItemVisible<\/Name>s:10ListableUI22ListScrollPositionInfoV17isLastItemVisibleSbvp<\/USR>public var isLastItemVisible: Bool<\/Declaration>If the last item list is partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.doc.full_as_xml" : "isLastItemVisible<\/Name>s:10ListableUI22ListScrollPositionInfoV17isLastItemVisibleSbvp<\/USR>public var isLastItemVisible: Bool<\/Declaration>If the last item list is partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 30,
             "key.doc.name" : "isLastItemVisible",
             "key.doc.type" : "Other",
             "key.doclength" : 48,
             "key.docoffset" : 775,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isLastItemVisible<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 28,
@@ -51940,14 +53951,14 @@
                 "Para" : "Generally, you want to include the `safeAreaInsets` for the top, left, and right, but may want to exclude the bottom if you consider the bottom edge visible if it’s visible below the home indicator on a home button-less iPhone or iPad."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
-            "key.doc.full_as_xml" : "visibleContentEdges(includingSafeAreaEdges:)<\/Name>s:10ListableUI22ListScrollPositionInfoV19visibleContentEdges017includingSafeAreaI0So10UIRectEdgeVAG_tF<\/USR>public func visibleContentEdges(includingSafeAreaEdges safeAreaEdges: UIRectEdge = .all) -> UIRectEdge<\/Declaration>Used to retrieve the visible content edges for the list’s content.<\/Para><\/Abstract>Eg, for vertical lists:<\/Para>If the list is scrolled all the way to the bottom, the visible edges are the left, right, and bottom.<\/Para><\/Item>If the list is scrolled all the way to the top, the visible edges are the left, right, and top.<\/Para><\/Item><\/List-Bullet>You can use this method to determine how and where the list is scrolled if you want to modify behavior based on the current scroll position.<\/Para>]]><\/rawHTML>Examples]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Safe Area Insets]]><\/rawHTML>You can control whether safeAreaInsets<\/codeVoice> should be taken into account via the includingSafeAreaEdges<\/codeVoice> parameter.<\/Para>Generally, you want to include the safeAreaInsets<\/codeVoice> for the top, left, and right, but may want to exclude the bottom if you consider the bottom edge visible if it’s visible below the home indicator on a home button-less iPhone or iPad.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.doc.full_as_xml" : "visibleContentEdges(includingSafeAreaEdges:)<\/Name>s:10ListableUI22ListScrollPositionInfoV19visibleContentEdges017includingSafeAreaI0So10UIRectEdgeVAG_tF<\/USR>public func visibleContentEdges(includingSafeAreaEdges safeAreaEdges: UIRectEdge = .all) -> UIRectEdge<\/Declaration>Used to retrieve the visible content edges for the list’s content.<\/Para><\/Abstract>Eg, for vertical lists:<\/Para>If the list is scrolled all the way to the bottom, the visible edges are the left, right, and bottom.<\/Para><\/Item>If the list is scrolled all the way to the top, the visible edges are the left, right, and top.<\/Para><\/Item><\/List-Bullet>You can use this method to determine how and where the list is scrolled if you want to modify behavior based on the current scroll position.<\/Para>]]><\/rawHTML>Examples]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Safe Area Insets]]><\/rawHTML>You can control whether safeAreaInsets<\/codeVoice> should be taken into account via the includingSafeAreaEdges<\/codeVoice> parameter.<\/Para>Generally, you want to include the safeAreaInsets<\/codeVoice> for the top, left, and right, but may want to exclude the bottom if you consider the bottom edge visible if it’s visible below the home indicator on a home button-less iPhone or iPad.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 74,
             "key.doc.name" : "visibleContentEdges(includingSafeAreaEdges:)",
             "key.doc.type" : "Function",
             "key.doclength" : 2921,
             "key.docoffset" : 872,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> visibleContentEdges<\/decl.name>(includingSafeAreaEdges<\/decl.var.parameter.argument_label> safeAreaEdges<\/decl.var.parameter.name>: UIRectEdge<\/ref.struct><\/decl.var.parameter.type> = .all<\/decl.var.parameter>) -> UIRectEdge<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 414,
@@ -51961,7 +53972,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let safeArea: UIEdgeInsets<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> safeArea<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 76,
@@ -51999,7 +54010,7 @@
                 "key.offset" : 4268
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> scrollViewState<\/decl.name>: ScrollViewState<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 37,
@@ -52029,14 +54040,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a `ListScrollPositionInfo` for the provided scroll view.",
             "key.doc.declaration" : "public init(scrollView: UIScrollView, visibleItems: Set, isFirstItemVisible: Bool, isLastItemVisible: Bool)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
-            "key.doc.full_as_xml" : "init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)<\/Name>s:10ListableUI22ListScrollPositionInfoV10scrollView12visibleItems18isFirstItemVisible0k4LastmN0ACSo08UIScrollH0C_ShyAA13AnyIdentifierCGS2btcfc<\/USR>public init(scrollView: UIScrollView, visibleItems: Set<AnyIdentifier>, isFirstItemVisible: Bool, isLastItemVisible: Bool)<\/Declaration>Creates a ListScrollPositionInfo<\/codeVoice> for the provided scroll view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.doc.full_as_xml" : "init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)<\/Name>s:10ListableUI22ListScrollPositionInfoV10scrollView12visibleItems18isFirstItemVisible0k4LastmN0ACSo08UIScrollH0C_ShyAA13AnyIdentifierCGS2btcfc<\/USR>public init(scrollView: UIScrollView, visibleItems: Set<AnyIdentifier>, isFirstItemVisible: Bool, isLastItemVisible: Bool)<\/Declaration>Creates a ListScrollPositionInfo<\/codeVoice> for the provided scroll view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 92,
             "key.doc.name" : "init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)",
             "key.doc.type" : "Function",
             "key.doclength" : 69,
             "key.docoffset" : 4323,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(scrollView<\/decl.var.parameter.argument_label>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, visibleItems<\/decl.var.parameter.argument_label>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, isFirstItemVisible<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, isLastItemVisible<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 529,
@@ -52066,7 +54077,7 @@
                 "key.offset" : 4967
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListScrollPositionInfo<\/ref.struct>.ScrollViewState<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -52086,7 +54097,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var bounds: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
@@ -52105,7 +54116,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var contentSize: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 24,
@@ -52124,7 +54135,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var safeAreaInsets: UIEdgeInsets<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> safeAreaInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 33,
@@ -52172,7 +54183,7 @@
             "key.annotated_decl" : "func masked(by edges: UIRectEdge<\/Type>) -> UIEdgeInsets<\/Type><\/Declaration>",
             "key.bodylength" : 438,
             "key.bodyoffset" : 5180,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> masked<\/decl.name>(by<\/decl.var.parameter.argument_label> edges<\/decl.var.parameter.name>: UIRectEdge<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIEdgeInsets<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 495,
@@ -52186,7 +54197,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var insets: UIEdgeInsets<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 27,
@@ -52245,7 +54256,7 @@
             "key.annotated_decl" : "static func visibleScrollViewContentEdges(bounds: CGRect<\/Type>, contentSize: CGSize<\/Type>, safeAreaInsets: UIEdgeInsets<\/Type>) -> UIRectEdge<\/Type><\/Declaration>",
             "key.bodylength" : 539,
             "key.bodyoffset" : 5842,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> visibleScrollViewContentEdges<\/decl.name>(bounds<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, contentSize<\/decl.var.parameter.argument_label>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, safeAreaInsets<\/decl.var.parameter.argument_label>: UIEdgeInsets<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIRectEdge<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 701,
@@ -52259,7 +54270,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let insetBounds: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> insetBounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 50,
@@ -52276,7 +54287,7 @@
               },
               {
                 "key.annotated_decl" : "var edges: UIRectEdge<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> edges<\/decl.name>: UIRectEdge<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 24,
@@ -52326,7 +54337,7 @@
             "key.doc.full_as_xml" : "debugDescription<\/Name>s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp<\/USR>var debugDescription: String { get }<\/Declaration>A textual representation of this instance, suitable for debugging.<\/Para><\/Abstract>Calling this property directly is discouraged. Instead, convert an instance of any type to a string by using the String(reflecting:)<\/codeVoice> initializer. This initializer works with any type, and uses the custom debugDescription<\/codeVoice> property for types that conform to CustomDebugStringConvertible<\/codeVoice>:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>The conversion of p<\/codeVoice> to a string in the assignment to s<\/codeVoice> uses the Point<\/codeVoice> type’s debugDescription<\/codeVoice> property.<\/Para>This documentation comment was inherited from CustomDebugStringConvertible<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.name" : "debugDescription",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debugDescription<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 508,
@@ -52348,7 +54359,7 @@
           },
           {
             "key.annotated_decl" : "var components: [String<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListScrollPositionInfo.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> components<\/decl.name>: [String<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
             "key.kind" : "source.lang.swift.decl.var.local",
             "key.length" : 27,
@@ -52371,9 +54382,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 6380,
+    "key.length" : 7339,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -52408,14 +54419,14 @@
             "Para" : "Note that the duration of performing all callbacks is logged to `os_signpost`. If you find that your application is running slowly, and you have registered `ListStateObserver` callbacks, use Instruments.app to see what callback is slow."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-        "key.doc.full_as_xml" : "ListStateObserver<\/Name>s:10ListableUI17ListStateObserverV<\/USR>public struct ListStateObserver<\/Declaration>Allows reading state and events based on state changes within the list view. For example, you can determine when a user scrolls, when the content of a list changes, etc.<\/Para><\/Abstract>This is useful if you want to log these events to a logging or debugging system, or potentially perform actions on the list based on some change.<\/Para>Every callback has its own data type, filled with information relevant to that callback. Every callback also contains a ListActions<\/codeVoice> to perform actions back on the list.<\/Para>You can register for each callback type multiple times – eg to split apart different pieces of functionality. Eg, two calls to onDidScroll<\/codeVoice> registers two callbacks.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Note that the duration of performing all callbacks is logged to os_signpost<\/codeVoice>. If you find that your application is running slowly, and you have registered ListStateObserver<\/codeVoice> callbacks, use Instruments.app to see what callback is slow.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+        "key.doc.full_as_xml" : "ListStateObserver<\/Name>s:10ListableUI17ListStateObserverV<\/USR>public struct ListStateObserver<\/Declaration>Allows reading state and events based on state changes within the list view. For example, you can determine when a user scrolls, when the content of a list changes, etc.<\/Para><\/Abstract>This is useful if you want to log these events to a logging or debugging system, or potentially perform actions on the list based on some change.<\/Para>Every callback has its own data type, filled with information relevant to that callback. Every callback also contains a ListActions<\/codeVoice> to perform actions back on the list.<\/Para>You can register for each callback type multiple times – eg to split apart different pieces of functionality. Eg, two calls to onDidScroll<\/codeVoice> registers two callbacks.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Note that the duration of performing all callbacks is logged to os_signpost<\/codeVoice>. If you find that your application is running slowly, and you have registered ListStateObserver<\/codeVoice> callbacks, use Instruments.app to see what callback is slow.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 41,
         "key.doc.name" : "ListStateObserver",
         "key.doc.type" : "Class",
         "key.doclength" : 1260,
         "key.docoffset" : 114,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListStateObserver<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 3624,
@@ -52442,14 +54453,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates and optionally allows you to configure an observer.",
             "key.doc.declaration" : "public init(_ configure: (inout ListStateObserver) -> () = { _ in })",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI17ListStateObserverVyACyACzXEcfc<\/USR>public init(_ configure: (inout ListStateObserver) -> () = { _ in })<\/Declaration>Creates and optionally allows you to configure an observer.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI17ListStateObserverVyACyACzXEcfc<\/USR>public init(_ configure: (inout ListStateObserver) -> () = { _ in })<\/Declaration>Creates and optionally allows you to configure an observer.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 44,
             "key.doc.name" : "init(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 64,
             "key.docoffset" : 1417,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> ListStateObserver<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 99,
@@ -52485,7 +54496,7 @@
                 "key.offset" : 1657
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnDidScroll<\/decl.name> = (DidScroll<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 41,
@@ -52525,14 +54536,14 @@
                 "Para" : " This callback is called very frequently when the user is scrolling the list. As such, make sure any work you do in the callback is efficient."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "onDidScroll(_:)<\/Name>s:10ListableUI17ListStateObserverV11onDidScrollyyyAC0gH0VcF<\/USR>public mutating func onDidScroll(_ callback: @escaping OnDidScroll)<\/Declaration>Registers a callback which will be called when the list view is scrolled, or is scrolled to top.<\/Para><\/Abstract>Note<\/bold> This callback is called very frequently when the user is scrolling the list. As such, make sure any work you do in the callback is efficient.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "onDidScroll(_:)<\/Name>s:10ListableUI17ListStateObserverV11onDidScrollyyyAC0gH0VcF<\/USR>public mutating func onDidScroll(_ callback: @escaping OnDidScroll)<\/Declaration>Registers a callback which will be called when the list view is scrolled, or is scrolled to top.<\/Para><\/Abstract>Note<\/bold> This callback is called very frequently when the user is scrolling the list. As such, make sure any work you do in the callback is efficient.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 60,
             "key.doc.name" : "onDidScroll(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 284,
             "key.docoffset" : 1711,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onDidScroll<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnDidScroll<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 107,
@@ -52565,7 +54576,7 @@
                 "key.offset" : 2132
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onDidScroll<\/decl.name>: [OnDidScroll<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 36,
@@ -52604,7 +54615,7 @@
                 "key.offset" : 2253
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnContentUpdated<\/decl.name> = (ContentUpdated<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 51,
@@ -52644,14 +54655,14 @@
                 "Para" : ": This method is called even if there were no actual changes made during the `setContent` call. To see if there were changes, check the `hadChanges` property on `ContentUpdated`."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "onContentUpdated(_:)<\/Name>s:10ListableUI17ListStateObserverV16onContentUpdatedyyyAC0gH0VcF<\/USR>public mutating func onContentUpdated(_ callback: @escaping OnContentUpdated)<\/Declaration>Registers a callback which will be called when the list view’s content is updated due to a call to setContent<\/codeVoice>.<\/Para><\/Abstract>Note<\/bold>: This method is called even if there were no actual changes made during the setContent<\/codeVoice> call. To see if there were changes, check the hadChanges<\/codeVoice> property on ContentUpdated<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "onContentUpdated(_:)<\/Name>s:10ListableUI17ListStateObserverV16onContentUpdatedyyyAC0gH0VcF<\/USR>public mutating func onContentUpdated(_ callback: @escaping OnContentUpdated)<\/Declaration>Registers a callback which will be called when the list view’s content is updated due to a call to setContent<\/codeVoice>.<\/Para><\/Abstract>Note<\/bold>: This method is called even if there were no actual changes made during the setContent<\/codeVoice> call. To see if there were changes, check the hadChanges<\/codeVoice> property on ContentUpdated<\/codeVoice>.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 78,
             "key.doc.name" : "onContentUpdated(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 336,
             "key.docoffset" : 2321,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onContentUpdated<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnContentUpdated<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 122,
@@ -52684,7 +54695,7 @@
                 "key.offset" : 2809
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onContentUpdated<\/decl.name>: [OnContentUpdated<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 46,
@@ -52723,7 +54734,7 @@
                 "key.offset" : 2943
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnVisibilityChanged<\/decl.name> = (VisibilityChanged<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 57,
@@ -52758,14 +54769,14 @@
             "key.doc.column" : 26,
             "key.doc.comment" : "Registers a callback which will be called when the list view's content is changed – eg through\ninserted, removed, updated, moved items or sections.",
             "key.doc.declaration" : "public mutating func onVisibilityChanged(_ callback: @escaping OnVisibilityChanged)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "onVisibilityChanged(_:)<\/Name>s:10ListableUI17ListStateObserverV19onVisibilityChangedyyyAC0gH0VcF<\/USR>public mutating func onVisibilityChanged(_ callback: @escaping OnVisibilityChanged)<\/Declaration>Registers a callback which will be called when the list view’s content is changed – eg through inserted, removed, updated, moved items or sections.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "onVisibilityChanged(_:)<\/Name>s:10ListableUI17ListStateObserverV19onVisibilityChangedyyyAC0gH0VcF<\/USR>public mutating func onVisibilityChanged(_ callback: @escaping OnVisibilityChanged)<\/Declaration>Registers a callback which will be called when the list view’s content is changed – eg through inserted, removed, updated, moved items or sections.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 93,
             "key.doc.name" : "onVisibilityChanged(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 162,
             "key.docoffset" : 3017,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onVisibilityChanged<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnVisibilityChanged<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 131,
@@ -52798,7 +54809,7 @@
                 "key.offset" : 3340
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onVisibilityChanged<\/decl.name>: [OnVisibilityChanged<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 52,
@@ -52837,7 +54848,7 @@
                 "key.offset" : 3475
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnFrameChanged<\/decl.name> = (FrameChanged<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 47,
@@ -52872,14 +54883,14 @@
             "key.doc.column" : 26,
             "key.doc.comment" : "Registers a callback which will be called when the list view's frame is changed.",
             "key.doc.declaration" : "public mutating func onFrameChanged(_ callback: @escaping OnFrameChanged)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "onFrameChanged(_:)<\/Name>s:10ListableUI17ListStateObserverV14onFrameChangedyyyAC0gH0VcF<\/USR>public mutating func onFrameChanged(_ callback: @escaping OnFrameChanged)<\/Declaration>Registers a callback which will be called when the list view’s frame is changed.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "onFrameChanged(_:)<\/Name>s:10ListableUI17ListStateObserverV14onFrameChangedyyyAC0gH0VcF<\/USR>public mutating func onFrameChanged(_ callback: @escaping OnFrameChanged)<\/Declaration>Registers a callback which will be called when the list view’s frame is changed.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 107,
             "key.doc.name" : "onFrameChanged(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 85,
             "key.docoffset" : 3539,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onFrameChanged<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnFrameChanged<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 115,
@@ -52912,7 +54923,7 @@
                 "key.offset" : 3769
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onFrameChanged<\/decl.name>: [OnFrameChanged<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 42,
@@ -52951,7 +54962,7 @@
                 "key.offset" : 3898
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.OnSelectionChanged<\/decl.name> = (SelectionChanged<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 55,
@@ -52986,14 +54997,14 @@
             "key.doc.column" : 26,
             "key.doc.comment" : "Registers a callback which will be called when the list view's selected items are changed by the user.",
             "key.doc.declaration" : "public mutating func onSelectionChanged(_ callback: @escaping OnSelectionChanged)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "onSelectionChanged(_:)<\/Name>s:10ListableUI17ListStateObserverV18onSelectionChangedyyyAC0gH0VcF<\/USR>public mutating func onSelectionChanged(_ callback: @escaping OnSelectionChanged)<\/Declaration>Registers a callback which will be called when the list view’s selected items are changed by the user.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "onSelectionChanged(_:)<\/Name>s:10ListableUI17ListStateObserverV18onSelectionChangedyyyAC0gH0VcF<\/USR>public mutating func onSelectionChanged(_ callback: @escaping OnSelectionChanged)<\/Declaration>Registers a callback which will be called when the list view’s selected items are changed by the user.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 121,
             "key.doc.name" : "onSelectionChanged(_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 107,
             "key.docoffset" : 3970,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> onSelectionChanged<\/decl.name>(_<\/decl.var.parameter.argument_label> callback<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnSelectionChanged<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 127,
@@ -53026,7 +55037,7 @@
                 "key.offset" : 4234
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> onSelectionChanged<\/decl.name>: [OnSelectionChanged<\/ref.typealias>]<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 50,
@@ -53060,7 +55071,7 @@
             "key.annotated_decl" : "static func perform<CallbackInfo>(_ callbacks: Array<\/Type><(CallbackInfo<\/Type>) -> ()>, _ loggingName: StaticString<\/Type>, with listView: ListView<\/Type>, makeInfo: (ListActions<\/Type>) -> (CallbackInfo<\/Type>))<\/Declaration>",
             "key.bodylength" : 439,
             "key.bodyoffset" : 4563,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> perform<\/decl.name><CallbackInfo<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> callbacks<\/decl.var.parameter.name>: Array<\/ref.struct><(CallbackInfo<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype>><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> loggingName<\/decl.var.parameter.name>: StaticString<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> listView<\/decl.var.parameter.name>: ListView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, makeInfo<\/decl.var.parameter.argument_label>: (ListActions<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> (CallbackInfo<\/ref.generic_type_param><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 647,
@@ -53074,7 +55085,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "CallbackInfo<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "CallbackInfo<\/decl.generic_type_param.name><\/decl.generic_type_param>",
                 "key.kind" : "source.lang.swift.decl.generic_type_param",
                 "key.length" : 12,
@@ -53091,7 +55102,7 @@
               },
               {
                 "key.annotated_decl" : "let actions: ListActions<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 27,
@@ -53108,7 +55119,7 @@
               },
               {
                 "key.annotated_decl" : "let callbackInfo: (CallbackInfo)<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> callbackInfo<\/decl.name>: (CallbackInfo)<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 36,
@@ -53135,7 +55146,7 @@
       },
       {
         "key.annotated_decl" : "public struct ListStateObserver<\/Declaration>",
-        "key.bodylength" : 1341,
+        "key.bodylength" : 2300,
         "key.bodyoffset" : 5037,
         "key.doc.column" : 15,
         "key.doc.declaration" : "public struct ListStateObserver",
@@ -53156,21 +55167,21 @@
             "Para" : "Note that the duration of performing all callbacks is logged to `os_signpost`. If you find that your application is running slowly, and you have registered `ListStateObserver` callbacks, use Instruments.app to see what callback is slow."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-        "key.doc.full_as_xml" : "ListStateObserver<\/Name>s:10ListableUI17ListStateObserverV<\/USR>public struct ListStateObserver<\/Declaration>Allows reading state and events based on state changes within the list view. For example, you can determine when a user scrolls, when the content of a list changes, etc.<\/Para><\/Abstract>This is useful if you want to log these events to a logging or debugging system, or potentially perform actions on the list based on some change.<\/Para>Every callback has its own data type, filled with information relevant to that callback. Every callback also contains a ListActions<\/codeVoice> to perform actions back on the list.<\/Para>You can register for each callback type multiple times – eg to split apart different pieces of functionality. Eg, two calls to onDidScroll<\/codeVoice> registers two callbacks.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Note that the duration of performing all callbacks is logged to os_signpost<\/codeVoice>. If you find that your application is running slowly, and you have registered ListStateObserver<\/codeVoice> callbacks, use Instruments.app to see what callback is slow.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+        "key.doc.full_as_xml" : "ListStateObserver<\/Name>s:10ListableUI17ListStateObserverV<\/USR>public struct ListStateObserver<\/Declaration>Allows reading state and events based on state changes within the list view. For example, you can determine when a user scrolls, when the content of a list changes, etc.<\/Para><\/Abstract>This is useful if you want to log these events to a logging or debugging system, or potentially perform actions on the list based on some change.<\/Para>Every callback has its own data type, filled with information relevant to that callback. Every callback also contains a ListActions<\/codeVoice> to perform actions back on the list.<\/Para>You can register for each callback type multiple times – eg to split apart different pieces of functionality. Eg, two calls to onDidScroll<\/codeVoice> registers two callbacks.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Note that the duration of performing all callbacks is logged to os_signpost<\/codeVoice>. If you find that your application is running slowly, and you have registered ListStateObserver<\/codeVoice> callbacks, use Instruments.app to see what callback is slow.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 41,
         "key.doc.name" : "ListStateObserver",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListStateObserver<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 1371,
+        "key.length" : 2330,
         "key.name" : "ListStateObserver",
         "key.namelength" : 17,
         "key.nameoffset" : 5018,
         "key.offset" : 5008,
         "key.parsed_declaration" : "extension ListStateObserver",
-        "key.parsed_scope.end" : 203,
+        "key.parsed_scope.end" : 229,
         "key.parsed_scope.start" : 157,
         "key.substructure" : [
           {
@@ -53188,14 +55199,14 @@
             "key.doc.column" : 19,
             "key.doc.comment" : "Parameters available for `OnDidScroll` callbacks.",
             "key.doc.declaration" : "public struct DidScroll",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "DidScroll<\/Name>s:10ListableUI17ListStateObserverV9DidScrollV<\/USR>public struct DidScroll<\/Declaration>Parameters available for OnDidScroll<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "DidScroll<\/Name>s:10ListableUI17ListStateObserverV9DidScrollV<\/USR>public struct DidScroll<\/Declaration>Parameters available for OnDidScroll<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
             "key.doc.line" : 160,
             "key.doc.name" : "DidScroll",
             "key.doc.type" : "Class",
             "key.doclength" : 54,
             "key.docoffset" : 5042,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> DidScroll<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 122,
@@ -53217,7 +55228,7 @@
                     "key.offset" : 5134
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
@@ -53242,7 +55253,7 @@
                     "key.offset" : 5175
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 41,
@@ -53272,28 +55283,28 @@
                 "key.offset" : 5307
               }
             ],
-            "key.bodylength" : 149,
+            "key.bodylength" : 1108,
             "key.bodyoffset" : 5337,
             "key.doc.column" : 19,
             "key.doc.comment" : "Parameters available for `OnContentUpdated` callbacks.",
             "key.doc.declaration" : "public struct ContentUpdated",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "ContentUpdated<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV<\/USR>public struct ContentUpdated<\/Declaration>Parameters available for OnContentUpdated<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "ContentUpdated<\/Name>s:10ListableUI17ListStateObserverV14ContentUpdatedV<\/USR>public struct ContentUpdated<\/Declaration>Parameters available for OnContentUpdated<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
             "key.doc.line" : 167,
             "key.doc.name" : "ContentUpdated",
             "key.doc.type" : "Class",
             "key.doclength" : 59,
             "key.docoffset" : 5244,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ContentUpdated<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 173,
+            "key.length" : 1132,
             "key.name" : "ContentUpdated",
             "key.namelength" : 14,
             "key.nameoffset" : 5321,
             "key.offset" : 5314,
             "key.parsed_declaration" : "public struct ContentUpdated",
-            "key.parsed_scope.end" : 172,
+            "key.parsed_scope.end" : 198,
             "key.parsed_scope.start" : 167,
             "key.substructure" : [
               {
@@ -53303,27 +55314,27 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 5346
+                    "key.offset" : 5355
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> hadChanges<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
                 "key.name" : "hadChanges",
                 "key.namelength" : 10,
-                "key.nameoffset" : 5357,
-                "key.offset" : 5353,
+                "key.nameoffset" : 5366,
+                "key.offset" : 5362,
                 "key.parsed_declaration" : "public let hadChanges : Bool",
-                "key.parsed_scope.end" : 168,
-                "key.parsed_scope.start" : 168,
+                "key.parsed_scope.end" : 169,
+                "key.parsed_scope.start" : 169,
                 "key.typename" : "Bool",
                 "key.typeusr" : "$sSbD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV10hadChangesSbvp"
               },
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public let actions: ListActions<\/Type><\/Declaration>",
+                "key.annotated_decl" : "public let insertionsAndRemovals: InsertionsAndRemovals<\/Type><\/Declaration>",
                 "key.attributes" : [
                   {
                     "key.attribute" : "source.decl.attribute.public",
@@ -53331,17 +55342,42 @@
                     "key.offset" : 5392
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> insertionsAndRemovals<\/decl.name>: InsertionsAndRemovals<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                "key.kind" : "source.lang.swift.decl.var.instance",
+                "key.length" : 49,
+                "key.name" : "insertionsAndRemovals",
+                "key.namelength" : 21,
+                "key.nameoffset" : 5403,
+                "key.offset" : 5399,
+                "key.parsed_declaration" : "public let insertionsAndRemovals : InsertionsAndRemovals",
+                "key.parsed_scope.end" : 170,
+                "key.parsed_scope.start" : 170,
+                "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals",
+                "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsVD",
+                "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21insertionsAndRemovalsAE010InsertionsiJ0Vvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public let actions: ListActions<\/Type><\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 5466
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
                 "key.name" : "actions",
                 "key.namelength" : 7,
-                "key.nameoffset" : 5403,
-                "key.offset" : 5399,
+                "key.nameoffset" : 5477,
+                "key.offset" : 5473,
                 "key.parsed_declaration" : "public let actions : ListActions",
-                "key.parsed_scope.end" : 170,
-                "key.parsed_scope.start" : 170,
+                "key.parsed_scope.end" : 172,
+                "key.parsed_scope.start" : 172,
                 "key.typename" : "ListActions",
                 "key.typeusr" : "$s10ListableUI11ListActionsCD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV7actionsAA0C7ActionsCvp"
@@ -53353,23 +55389,208 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 5433
+                    "key.offset" : 5507
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 41,
                 "key.name" : "positionInfo",
                 "key.namelength" : 12,
-                "key.nameoffset" : 5444,
-                "key.offset" : 5440,
+                "key.nameoffset" : 5518,
+                "key.offset" : 5514,
                 "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo",
-                "key.parsed_scope.end" : 171,
-                "key.parsed_scope.start" : 171,
+                "key.parsed_scope.end" : 173,
+                "key.parsed_scope.start" : 173,
                 "key.typename" : "ListScrollPositionInfo",
                 "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV12positionInfoAA0c14ScrollPositionI0Vvp"
+              },
+              {
+                "key.accessibility" : "source.lang.swift.accessibility.public",
+                "key.annotated_decl" : "public struct ListStateObserver<\/Type>.ContentUpdated<\/Type>.InsertionsAndRemovals<\/Declaration>",
+                "key.attributes" : [
+                  {
+                    "key.attribute" : "source.decl.attribute.public",
+                    "key.length" : 6,
+                    "key.offset" : 5573
+                  }
+                ],
+                "key.bodylength" : 829,
+                "key.bodyoffset" : 5610,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.ContentUpdated<\/ref.struct>.InsertionsAndRemovals<\/decl.name><\/decl.struct>",
+                "key.kind" : "source.lang.swift.decl.struct",
+                "key.length" : 860,
+                "key.name" : "InsertionsAndRemovals",
+                "key.namelength" : 21,
+                "key.nameoffset" : 5587,
+                "key.offset" : 5580,
+                "key.parsed_declaration" : "public struct InsertionsAndRemovals",
+                "key.parsed_scope.end" : 197,
+                "key.parsed_scope.start" : 175,
+                "key.substructure" : [
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "public var sections: ChangedIDs<\/Type><\/Declaration>",
+                    "key.attributes" : [
+                      {
+                        "key.attribute" : "source.decl.attribute.public",
+                        "key.length" : 6,
+                        "key.offset" : 5624
+                      }
+                    ],
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+                    "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sections<\/decl.name>: ChangedIDs<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 25,
+                    "key.name" : "sections",
+                    "key.namelength" : 8,
+                    "key.nameoffset" : 5635,
+                    "key.offset" : 5631,
+                    "key.parsed_declaration" : "public var sections : ChangedIDs",
+                    "key.parsed_scope.end" : 177,
+                    "key.parsed_scope.start" : 177,
+                    "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                    "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs",
+                    "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsVD",
+                    "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV8sectionsAG10ChangedIDsVvp"
+                  },
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "public var items: ChangedIDs<\/Type><\/Declaration>",
+                    "key.attributes" : [
+                      {
+                        "key.attribute" : "source.decl.attribute.public",
+                        "key.length" : 6,
+                        "key.offset" : 5669
+                      }
+                    ],
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+                    "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> items<\/decl.name>: ChangedIDs<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+                    "key.kind" : "source.lang.swift.decl.var.instance",
+                    "key.length" : 22,
+                    "key.name" : "items",
+                    "key.namelength" : 5,
+                    "key.nameoffset" : 5680,
+                    "key.offset" : 5676,
+                    "key.parsed_declaration" : "public var items : ChangedIDs",
+                    "key.parsed_scope.end" : 178,
+                    "key.parsed_scope.start" : 178,
+                    "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                    "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs",
+                    "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsVD",
+                    "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV5itemsAG10ChangedIDsVvp"
+                  },
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.internal",
+                    "key.annotated_decl" : "init(diff: SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>)<\/Declaration>",
+                    "key.bodylength" : 450,
+                    "key.bodyoffset" : 5800,
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+                    "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(diff<\/decl.var.parameter.argument_label>: SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
+                    "key.kind" : "source.lang.swift.decl.function.method.instance",
+                    "key.length" : 527,
+                    "key.name" : "init(diff:)",
+                    "key.namelength" : 74,
+                    "key.nameoffset" : 5724,
+                    "key.offset" : 5724,
+                    "key.parsed_declaration" : "init(diff : SectionedDiff)",
+                    "key.parsed_scope.end" : 191,
+                    "key.parsed_scope.start" : 180,
+                    "key.substructure" : [
+
+                    ],
+                    "key.typename" : "(ListStateObserver.ContentUpdated.InsertionsAndRemovals.Type) -> (SectionedDiff) -> ListStateObserver.ContentUpdated.InsertionsAndRemovals",
+                    "key.typeusr" : "$s4diff10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsVAB13SectionedDiffVyAB7SectionVAB13AnyIdentifierCAB0O4Item_pANG_tcD",
+                    "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV4diffAgA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0O4Item_pANG_tcfc"
+                  },
+                  {
+                    "key.accessibility" : "source.lang.swift.accessibility.public",
+                    "key.annotated_decl" : "public struct ListStateObserver<\/Type>.ContentUpdated<\/Type>.InsertionsAndRemovals<\/Type>.ChangedIDs<\/Declaration>",
+                    "key.attributes" : [
+                      {
+                        "key.attribute" : "source.decl.attribute.public",
+                        "key.length" : 6,
+                        "key.offset" : 6277
+                      }
+                    ],
+                    "key.bodylength" : 126,
+                    "key.bodyoffset" : 6303,
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+                    "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ListStateObserver<\/ref.struct>.ContentUpdated<\/ref.struct>.InsertionsAndRemovals<\/ref.struct>.ChangedIDs<\/decl.name><\/decl.struct>",
+                    "key.kind" : "source.lang.swift.decl.struct",
+                    "key.length" : 146,
+                    "key.name" : "ChangedIDs",
+                    "key.namelength" : 10,
+                    "key.nameoffset" : 6291,
+                    "key.offset" : 6284,
+                    "key.parsed_declaration" : "public struct ChangedIDs",
+                    "key.parsed_scope.end" : 196,
+                    "key.parsed_scope.start" : 193,
+                    "key.substructure" : [
+                      {
+                        "key.accessibility" : "source.lang.swift.accessibility.public",
+                        "key.annotated_decl" : "public var inserted: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>",
+                        "key.attributes" : [
+                          {
+                            "key.attribute" : "source.decl.attribute.public",
+                            "key.length" : 6,
+                            "key.offset" : 6320
+                          }
+                        ],
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+                        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> inserted<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>",
+                        "key.kind" : "source.lang.swift.decl.var.instance",
+                        "key.length" : 33,
+                        "key.name" : "inserted",
+                        "key.namelength" : 8,
+                        "key.nameoffset" : 6331,
+                        "key.offset" : 6327,
+                        "key.parsed_declaration" : "public var inserted : Set",
+                        "key.parsed_scope.end" : 194,
+                        "key.parsed_scope.start" : 194,
+                        "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                        "key.typename" : "Set",
+                        "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD",
+                        "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV8insertedShyAA13AnyIdentifierCGvp"
+                      },
+                      {
+                        "key.accessibility" : "source.lang.swift.accessibility.public",
+                        "key.annotated_decl" : "public var removed: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>",
+                        "key.attributes" : [
+                          {
+                            "key.attribute" : "source.decl.attribute.public",
+                            "key.length" : 6,
+                            "key.offset" : 6377
+                          }
+                        ],
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+                        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> removed<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>",
+                        "key.kind" : "source.lang.swift.decl.var.instance",
+                        "key.length" : 32,
+                        "key.name" : "removed",
+                        "key.namelength" : 7,
+                        "key.nameoffset" : 6388,
+                        "key.offset" : 6384,
+                        "key.parsed_declaration" : "public var removed : Set",
+                        "key.parsed_scope.end" : 195,
+                        "key.parsed_scope.start" : 195,
+                        "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+                        "key.typename" : "Set",
+                        "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD",
+                        "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV7removedShyAA13AnyIdentifierCGvp"
+                      }
+                    ],
+                    "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs.Type",
+                    "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsVmD",
+                    "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV"
+                  }
+                ],
+                "key.typename" : "ListStateObserver.ContentUpdated.InsertionsAndRemovals.Type",
+                "key.typeusr" : "$s10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsVmD",
+                "key.usr" : "s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV"
               }
             ],
             "key.typename" : "ListStateObserver.ContentUpdated.Type",
@@ -53383,32 +55604,32 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5568
+                "key.offset" : 6527
               }
             ],
             "key.bodylength" : 197,
-            "key.bodyoffset" : 5601,
+            "key.bodyoffset" : 6560,
             "key.doc.column" : 19,
             "key.doc.comment" : "Parameters available for `OnVisibilityChanged` callbacks.",
             "key.doc.declaration" : "public struct VisibilityChanged",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "VisibilityChanged<\/Name>s:10ListableUI17ListStateObserverV17VisibilityChangedV<\/USR>public struct VisibilityChanged<\/Declaration>Parameters available for OnVisibilityChanged<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
-            "key.doc.line" : 176,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "VisibilityChanged<\/Name>s:10ListableUI17ListStateObserverV17VisibilityChangedV<\/USR>public struct VisibilityChanged<\/Declaration>Parameters available for OnVisibilityChanged<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.line" : 202,
             "key.doc.name" : "VisibilityChanged",
             "key.doc.type" : "Class",
             "key.doclength" : 62,
-            "key.docoffset" : 5502,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.docoffset" : 6461,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> VisibilityChanged<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 224,
             "key.name" : "VisibilityChanged",
             "key.namelength" : 17,
-            "key.nameoffset" : 5582,
-            "key.offset" : 5575,
+            "key.nameoffset" : 6541,
+            "key.offset" : 6534,
             "key.parsed_declaration" : "public struct VisibilityChanged",
-            "key.parsed_scope.end" : 182,
-            "key.parsed_scope.start" : 176,
+            "key.parsed_scope.end" : 208,
+            "key.parsed_scope.start" : 202,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -53417,20 +55638,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 5610
+                    "key.offset" : 6569
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
                 "key.name" : "actions",
                 "key.namelength" : 7,
-                "key.nameoffset" : 5621,
-                "key.offset" : 5617,
+                "key.nameoffset" : 6580,
+                "key.offset" : 6576,
                 "key.parsed_declaration" : "public let actions : ListActions",
-                "key.parsed_scope.end" : 177,
-                "key.parsed_scope.start" : 177,
+                "key.parsed_scope.end" : 203,
+                "key.parsed_scope.start" : 203,
                 "key.typename" : "ListActions",
                 "key.typeusr" : "$s10ListableUI11ListActionsCD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV7actionsAA0C7ActionsCvp"
@@ -53442,20 +55663,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 5651
+                    "key.offset" : 6610
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 41,
                 "key.name" : "positionInfo",
                 "key.namelength" : 12,
-                "key.nameoffset" : 5662,
-                "key.offset" : 5658,
+                "key.nameoffset" : 6621,
+                "key.offset" : 6617,
                 "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo",
-                "key.parsed_scope.end" : 178,
-                "key.parsed_scope.start" : 178,
+                "key.parsed_scope.end" : 204,
+                "key.parsed_scope.start" : 204,
                 "key.typename" : "ListScrollPositionInfo",
                 "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV12positionInfoAA0c14ScrollPositionI0Vvp"
@@ -53467,20 +55688,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 5717
+                    "key.offset" : 6676
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> displayed<\/decl.name>: [AnyItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
                 "key.name" : "displayed",
                 "key.namelength" : 9,
-                "key.nameoffset" : 5728,
-                "key.offset" : 5724,
+                "key.nameoffset" : 6687,
+                "key.offset" : 6683,
                 "key.parsed_declaration" : "public let displayed : [AnyItem]",
-                "key.parsed_scope.end" : 180,
-                "key.parsed_scope.start" : 180,
+                "key.parsed_scope.end" : 206,
+                "key.parsed_scope.start" : 206,
                 "key.typename" : "[AnyItem]",
                 "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV9displayedSayAA7AnyItem_pGvp"
@@ -53492,20 +55713,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 5758
+                    "key.offset" : 6717
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> endedDisplay<\/decl.name>: [AnyItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 28,
                 "key.name" : "endedDisplay",
                 "key.namelength" : 12,
-                "key.nameoffset" : 5769,
-                "key.offset" : 5765,
+                "key.nameoffset" : 6728,
+                "key.offset" : 6724,
                 "key.parsed_declaration" : "public let endedDisplay : [AnyItem]",
-                "key.parsed_scope.end" : 181,
-                "key.parsed_scope.start" : 181,
+                "key.parsed_scope.end" : 207,
+                "key.parsed_scope.start" : 207,
                 "key.typename" : "[AnyItem]",
                 "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV17VisibilityChangedV12endedDisplaySayAA7AnyItem_pGvp"
@@ -53522,32 +55743,32 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5875
+                "key.offset" : 6834
               }
             ],
             "key.bodylength" : 168,
-            "key.bodyoffset" : 5903,
+            "key.bodyoffset" : 6862,
             "key.doc.column" : 19,
             "key.doc.comment" : "Parameters available for `OnFrameChanged` callbacks.",
             "key.doc.declaration" : "public struct FrameChanged",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "FrameChanged<\/Name>s:10ListableUI17ListStateObserverV12FrameChangedV<\/USR>public struct FrameChanged<\/Declaration>Parameters available for OnFrameChanged<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
-            "key.doc.line" : 186,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "FrameChanged<\/Name>s:10ListableUI17ListStateObserverV12FrameChangedV<\/USR>public struct FrameChanged<\/Declaration>Parameters available for OnFrameChanged<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.line" : 212,
             "key.doc.name" : "FrameChanged",
             "key.doc.type" : "Class",
             "key.doclength" : 57,
-            "key.docoffset" : 5814,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.docoffset" : 6773,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> FrameChanged<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 190,
             "key.name" : "FrameChanged",
             "key.namelength" : 12,
-            "key.nameoffset" : 5889,
-            "key.offset" : 5882,
+            "key.nameoffset" : 6848,
+            "key.offset" : 6841,
             "key.parsed_declaration" : "public struct FrameChanged",
-            "key.parsed_scope.end" : 192,
-            "key.parsed_scope.start" : 186,
+            "key.parsed_scope.end" : 218,
+            "key.parsed_scope.start" : 212,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -53556,20 +55777,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 5912
+                    "key.offset" : 6871
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
                 "key.name" : "actions",
                 "key.namelength" : 7,
-                "key.nameoffset" : 5923,
-                "key.offset" : 5919,
+                "key.nameoffset" : 6882,
+                "key.offset" : 6878,
                 "key.parsed_declaration" : "public let actions : ListActions",
-                "key.parsed_scope.end" : 187,
-                "key.parsed_scope.start" : 187,
+                "key.parsed_scope.end" : 213,
+                "key.parsed_scope.start" : 213,
                 "key.typename" : "ListActions",
                 "key.typeusr" : "$s10ListableUI11ListActionsCD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV12FrameChangedV7actionsAA0C7ActionsCvp"
@@ -53581,20 +55802,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 5953
+                    "key.offset" : 6912
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 41,
                 "key.name" : "positionInfo",
                 "key.namelength" : 12,
-                "key.nameoffset" : 5964,
-                "key.offset" : 5960,
+                "key.nameoffset" : 6923,
+                "key.offset" : 6919,
                 "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo",
-                "key.parsed_scope.end" : 188,
-                "key.parsed_scope.start" : 188,
+                "key.parsed_scope.end" : 214,
+                "key.parsed_scope.start" : 214,
                 "key.typename" : "ListScrollPositionInfo",
                 "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV12FrameChangedV12positionInfoAA0c14ScrollPositionI0Vvp"
@@ -53606,20 +55827,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 6011
+                    "key.offset" : 6970
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> old<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 16,
                 "key.name" : "old",
                 "key.namelength" : 3,
-                "key.nameoffset" : 6022,
-                "key.offset" : 6018,
+                "key.nameoffset" : 6981,
+                "key.offset" : 6977,
                 "key.parsed_declaration" : "public let old : CGRect",
-                "key.parsed_scope.end" : 190,
-                "key.parsed_scope.start" : 190,
+                "key.parsed_scope.end" : 216,
+                "key.parsed_scope.start" : 216,
                 "key.typename" : "CGRect",
                 "key.typeusr" : "$sSo6CGRectVD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV12FrameChangedV3oldSo6CGRectVvp"
@@ -53631,20 +55852,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 6043
+                    "key.offset" : 7002
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> new<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 16,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 6054,
-                "key.offset" : 6050,
+                "key.nameoffset" : 7013,
+                "key.offset" : 7009,
                 "key.parsed_declaration" : "public let new : CGRect",
-                "key.parsed_scope.end" : 191,
-                "key.parsed_scope.start" : 191,
+                "key.parsed_scope.end" : 217,
+                "key.parsed_scope.start" : 217,
                 "key.typename" : "CGRect",
                 "key.typeusr" : "$sSo6CGRectVD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV12FrameChangedV3newSo6CGRectVvp"
@@ -53661,32 +55882,32 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 6152
+                "key.offset" : 7111
               }
             ],
             "key.bodylength" : 192,
-            "key.bodyoffset" : 6184,
+            "key.bodyoffset" : 7143,
             "key.doc.column" : 19,
             "key.doc.comment" : "Parameters available for `OnSelectionChanged` callbacks.",
             "key.doc.declaration" : "public struct SelectionChanged",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
-            "key.doc.full_as_xml" : "SelectionChanged<\/Name>s:10ListableUI17ListStateObserverV16SelectionChangedV<\/USR>public struct SelectionChanged<\/Declaration>Parameters available for OnSelectionChanged<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
-            "key.doc.line" : 196,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.doc.full_as_xml" : "SelectionChanged<\/Name>s:10ListableUI17ListStateObserverV16SelectionChangedV<\/USR>public struct SelectionChanged<\/Declaration>Parameters available for OnSelectionChanged<\/codeVoice> callbacks.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.line" : 222,
             "key.doc.name" : "SelectionChanged",
             "key.doc.type" : "Class",
             "key.doclength" : 61,
-            "key.docoffset" : 6087,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+            "key.docoffset" : 7046,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SelectionChanged<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 218,
             "key.name" : "SelectionChanged",
             "key.namelength" : 16,
-            "key.nameoffset" : 6166,
-            "key.offset" : 6159,
+            "key.nameoffset" : 7125,
+            "key.offset" : 7118,
             "key.parsed_declaration" : "public struct SelectionChanged",
-            "key.parsed_scope.end" : 202,
-            "key.parsed_scope.start" : 196,
+            "key.parsed_scope.end" : 228,
+            "key.parsed_scope.start" : 222,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -53695,20 +55916,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 6193
+                    "key.offset" : 7152
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
                 "key.name" : "actions",
                 "key.namelength" : 7,
-                "key.nameoffset" : 6204,
-                "key.offset" : 6200,
+                "key.nameoffset" : 7163,
+                "key.offset" : 7159,
                 "key.parsed_declaration" : "public let actions : ListActions",
-                "key.parsed_scope.end" : 197,
-                "key.parsed_scope.start" : 197,
+                "key.parsed_scope.end" : 223,
+                "key.parsed_scope.start" : 223,
                 "key.typename" : "ListActions",
                 "key.typeusr" : "$s10ListableUI11ListActionsCD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV16SelectionChangedV7actionsAA0C7ActionsCvp"
@@ -53720,20 +55941,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 6234
+                    "key.offset" : 7193
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> positionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 41,
                 "key.name" : "positionInfo",
                 "key.namelength" : 12,
-                "key.nameoffset" : 6245,
-                "key.offset" : 6241,
+                "key.nameoffset" : 7204,
+                "key.offset" : 7200,
                 "key.parsed_declaration" : "public let positionInfo : ListScrollPositionInfo",
-                "key.parsed_scope.end" : 198,
-                "key.parsed_scope.start" : 198,
+                "key.parsed_scope.end" : 224,
+                "key.parsed_scope.start" : 224,
                 "key.typename" : "ListScrollPositionInfo",
                 "key.typeusr" : "$s10ListableUI22ListScrollPositionInfoVD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV16SelectionChangedV12positionInfoAA0c14ScrollPositionI0Vvp"
@@ -53745,20 +55966,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 6292
+                    "key.offset" : 7251
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> old<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 28,
                 "key.name" : "old",
                 "key.namelength" : 3,
-                "key.nameoffset" : 6303,
-                "key.offset" : 6299,
+                "key.nameoffset" : 7262,
+                "key.offset" : 7258,
                 "key.parsed_declaration" : "public let old : Set",
-                "key.parsed_scope.end" : 200,
-                "key.parsed_scope.start" : 200,
+                "key.parsed_scope.end" : 226,
+                "key.parsed_scope.start" : 226,
                 "key.typename" : "Set",
                 "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV16SelectionChangedV3oldShyAA13AnyIdentifierCGvp"
@@ -53770,20 +55991,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 6336
+                    "key.offset" : 7295
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListStateObserver.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListStateObserver.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> new<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 28,
                 "key.name" : "new",
                 "key.namelength" : 3,
-                "key.nameoffset" : 6347,
-                "key.offset" : 6343,
+                "key.nameoffset" : 7306,
+                "key.offset" : 7302,
                 "key.parsed_declaration" : "public let new : Set",
-                "key.parsed_scope.end" : 201,
-                "key.parsed_scope.start" : 201,
+                "key.parsed_scope.end" : 227,
+                "key.parsed_scope.start" : 227,
                 "key.typename" : "Set",
                 "key.typeusr" : "$sShy10ListableUI13AnyIdentifierCGD",
                 "key.usr" : "s:10ListableUI17ListStateObserverV16SelectionChangedV3newShyAA13AnyIdentifierCGvp"
@@ -53801,7 +56022,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 5053,
     "key.offset" : 0,
@@ -53835,8 +56056,8 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
-        "key.doc.full_as_xml" : "ListSizing<\/Name>s:10ListableUI10ListSizingO<\/USR>public enum ListSizing : Equatable<\/Declaration>Provides the possible options for how to size and measure a list when its measured size is queried by the layout system.<\/Para><\/Abstract>You have two options: .fillParent<\/codeVoice> and .measureContent<\/codeVoice>.<\/Para>When using  .fillParent<\/codeVoice>, the full available fitting size will be taken up, regardless of the size of the content itself.<\/Para>When using .measureContent<\/codeVoice>, the content will be measured within the provided fitting size and the smallest of the two sizes will be returned.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+        "key.doc.full_as_xml" : "ListSizing<\/Name>s:10ListableUI10ListSizingO<\/USR>public enum ListSizing : Equatable<\/Declaration>Provides the possible options for how to size and measure a list when its measured size is queried by the layout system.<\/Para><\/Abstract>You have two options: .fillParent<\/codeVoice> and .measureContent<\/codeVoice>.<\/Para>When using  .fillParent<\/codeVoice>, the full available fitting size will be taken up, regardless of the size of the content itself.<\/Para>When using .measureContent<\/codeVoice>, the content will be measured within the provided fitting size and the smallest of the two sizes will be returned.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
         "key.doc.line" : 43,
         "key.doc.name" : "ListSizing",
         "key.doc.type" : "Other",
@@ -53849,7 +56070,7 @@
             "key.offset" : 1264
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ListSizing<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
         "key.inheritedtypes" : [
           {
@@ -53890,14 +56111,14 @@
                     "Para" : "This option is the most performant, because no content measurement has to occur."
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
-                "key.doc.full_as_xml" : "fillParent<\/Name>s:10ListableUI10ListSizingO10fillParentyA2CmF<\/USR><\/Declaration>When using  .fillParent<\/codeVoice>, the full available space will be taken up, regardless of the content size of the list itself.<\/Para><\/Abstract>Eg, if the fitting size passed to the list is (200w, 1000h), and the list’s content is only (200w, 500h), (200w, 1000h) will still be returned.<\/Para>This is the setting you want to use when your list is being used to fill the content of a screen, such as if it is being presented in a navigation controller or tab bar controller.<\/Para>This option is the most performant, because no content measurement has to occur.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+                "key.doc.full_as_xml" : "fillParent<\/Name>s:10ListableUI10ListSizingO10fillParentyA2CmF<\/USR><\/Declaration>When using  .fillParent<\/codeVoice>, the full available space will be taken up, regardless of the content size of the list itself.<\/Para><\/Abstract>Eg, if the fitting size passed to the list is (200w, 1000h), and the list’s content is only (200w, 500h), (200w, 1000h) will still be returned.<\/Para>This is the setting you want to use when your list is being used to fill the content of a screen, such as if it is being presented in a navigation controller or tab bar controller.<\/Para>This option is the most performant, because no content measurement has to occur.<\/Para><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 55,
                 "key.doc.name" : "fillParent",
                 "key.doc.type" : "Other",
                 "key.doclength" : 603,
                 "key.docoffset" : 1280,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fillParent<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 10,
@@ -53932,14 +56153,14 @@
                     "Para" : "If you are putting a list into a sheet or popover, this is generally the `Sizing` type you will want to use, to ensure the sheet or popover takes up the minimum amount of space possible."
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
-                "key.doc.full_as_xml" : "measureContent<\/Name>s:10ListableUI10ListSizingO14measureContentyA2CmF<\/USR><\/Declaration>When using .measureContent<\/codeVoice>, the content will be measured within the provided fitting size and the smallest of the two sizes will be returned.<\/Para><\/Abstract>If you are putting a list into a sheet or popover, this is generally the Sizing<\/codeVoice> type you will want to use, to ensure the sheet or popover takes up the minimum amount of space possible.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+                "key.doc.full_as_xml" : "measureContent<\/Name>s:10ListableUI10ListSizingO14measureContentyA2CmF<\/USR><\/Declaration>When using .measureContent<\/codeVoice>, the content will be measured within the provided fitting size and the smallest of the two sizes will be returned.<\/Para><\/Abstract>If you are putting a list into a sheet or popover, this is generally the Sizing<\/codeVoice> type you will want to use, to ensure the sheet or popover takes up the minimum amount of space possible.<\/Para><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 62,
                 "key.doc.name" : "measureContent",
                 "key.doc.type" : "Other",
                 "key.doclength" : 367,
                 "key.docoffset" : 1912,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> measureContent<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 14,
@@ -53965,7 +56186,7 @@
         "key.annotated_decl" : "public final class ListView : UIView<\/Type>, KeyboardObserverDelegate<\/Declaration>",
         "key.bodylength" : 2724,
         "key.bodyoffset" : 2327,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 2745,
@@ -53997,7 +56218,7 @@
             ],
             "key.bodylength" : 80,
             "key.bodyoffset" : 2486,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> contentSize<\/decl.name>(in<\/decl.var.parameter.argument_label> fittingSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> properties<\/decl.var.parameter.name>: ListProperties<\/ref.struct>.Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 180,
@@ -54033,7 +56254,7 @@
                 "key.offset" : 2577
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> let<\/syntaxtype.keyword> measurementView<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 145,
@@ -54060,7 +56281,7 @@
             ],
             "key.bodylength" : 2209,
             "key.bodyoffset" : 2840,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> contentSize<\/decl.name>(in<\/decl.var.parameter.argument_label> fittingSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> properties<\/decl.var.parameter.name>: ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 2303,
@@ -54082,7 +56303,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let view: ListView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 31,
@@ -54107,14 +56328,14 @@
                     "Para" : "We switch on the `direction` from the layout to provide the correct width or height. for the layout. Only the cross-axis of the direction – width for vertical, and height for horizontal."
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
-                "key.doc.full_as_xml" : "unconstrainedValues<\/Name>s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_AA0C10PropertiesVtFZ19unconstrainedValuesL_Shy12CoreGraphics7CGFloatVGvp<\/USR>let unconstrainedValues: Set<CGFloat><\/Declaration>Set the size of the view to the fitting size, since the width or height will be used by the underlying layout to measure the required contentSize.<\/Para><\/Abstract>We switch on the direction<\/codeVoice> from the layout to provide the correct width or height. for the layout. Only the cross-axis of the direction – width for vertical, and height for horizontal.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+                "key.doc.full_as_xml" : "unconstrainedValues<\/Name>s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_AA0C10PropertiesVtFZ19unconstrainedValuesL_Shy12CoreGraphics7CGFloatVGvp<\/USR>let unconstrainedValues: Set<CGFloat><\/Declaration>Set the size of the view to the fitting size, since the width or height will be used by the underlying layout to measure the required contentSize.<\/Para><\/Abstract>We switch on the direction<\/codeVoice> from the layout to provide the correct width or height. for the layout. Only the cross-axis of the direction – width for vertical, and height for horizontal.<\/Para><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 97,
                 "key.doc.name" : "unconstrainedValues",
                 "key.doc.type" : "Other",
                 "key.doclength" : 400,
                 "key.docoffset" : 3034,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> unconstrainedValues<\/decl.name>: Set<\/ref.struct><CGFloat<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 83,
@@ -54131,7 +56352,7 @@
               },
               {
                 "key.annotated_decl" : "let size: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListSizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListSizing.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 27,
@@ -54159,7 +56380,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 2773,
     "key.offset" : 0,
@@ -54176,7 +56397,7 @@
         ],
         "key.bodylength" : 2614,
         "key.bodyoffset" : 157,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView, KeyboardObserverDelegate<\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 2635,
@@ -54193,7 +56414,7 @@
             "key.annotated_decl" : "struct CollectionViewChanges<\/Declaration>",
             "key.bodylength" : 2573,
             "key.bodyoffset" : 196,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> CollectionViewChanges<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 2608,
@@ -54208,7 +56429,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "typealias ListView<\/Type>.CollectionViewChanges<\/Type>.SectionChanges = SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>.SectionChanges<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ListView<\/ref.class>.CollectionViewChanges<\/ref.struct>.SectionChanges<\/decl.name> = SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>>.SectionChanges<\/ref.struct><\/decl.typealias>",
                 "key.kind" : "source.lang.swift.decl.typealias",
                 "key.length" : 103,
@@ -54226,7 +56447,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "typealias ListView<\/Type>.CollectionViewChanges<\/Type>.ItemChanges = SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>>.ItemChanges<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ListView<\/ref.class>.CollectionViewChanges<\/ref.struct>.ItemChanges<\/decl.name> = SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>>.ItemChanges<\/ref.struct><\/decl.typealias>",
                 "key.kind" : "source.lang.swift.decl.typealias",
                 "key.length" : 97,
@@ -54244,7 +56465,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var deletedSections: [SectionChanges<\/Type>.Removed<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> deletedSections<\/decl.name>: [SectionChanges<\/ref.typealias>.Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 51,
@@ -54263,7 +56484,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var insertedSections: [SectionChanges<\/Type>.Added<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertedSections<\/decl.name>: [SectionChanges<\/ref.typealias>.Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 50,
@@ -54282,7 +56503,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var movedSections: [SectionChanges<\/Type>.Moved<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> movedSections<\/decl.name>: [SectionChanges<\/ref.typealias>.Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 47,
@@ -54301,7 +56522,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var deletedItems: [ItemChanges<\/Type>.Removed<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> deletedItems<\/decl.name>: [ItemChanges<\/ref.typealias>.Removed<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 45,
@@ -54320,7 +56541,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var insertedItems: [ItemChanges<\/Type>.Added<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> insertedItems<\/decl.name>: [ItemChanges<\/ref.typealias>.Added<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 44,
@@ -54339,7 +56560,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var updatedItems: [ItemChanges<\/Type>.Updated<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> updatedItems<\/decl.name>: [ItemChanges<\/ref.typealias>.Updated<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 45,
@@ -54358,7 +56579,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var movedItems: [ItemChanges<\/Type>.Moved<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> movedItems<\/decl.name>: [ItemChanges<\/ref.typealias>.Moved<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 41,
@@ -54379,7 +56600,7 @@
                 "key.annotated_decl" : "var hasIndexAffectingChanges: Bool<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 373,
                 "key.bodyoffset" : 881,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> hasIndexAffectingChanges<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 411,
@@ -54399,7 +56620,7 @@
                 "key.annotated_decl" : "init(sectionChanges changes: SectionChanges<\/Type>)<\/Declaration>",
                 "key.bodylength" : 1435,
                 "key.bodyoffset" : 1328,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.CollectionViewChanges.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(sectionChanges<\/decl.var.parameter.argument_label> changes<\/decl.var.parameter.name>: SectionChanges<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1491,
@@ -54430,7 +56651,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 3590,
     "key.offset" : 0,
@@ -54447,7 +56668,7 @@
         ],
         "key.bodylength" : 3460,
         "key.bodyoffset" : 128,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView, KeyboardObserverDelegate<\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 3481,
@@ -54483,7 +56704,7 @@
                 "key.offset" : 168
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DataSource<\/decl.name> : NSObject<\/ref.class>, UICollectionViewDataSource<\/ref.protocol><\/decl.class>",
             "key.inheritedtypes" : [
               {
@@ -54513,7 +56734,7 @@
                     "key.offset" : 209
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> presentationState<\/decl.name>: PresentationState<\/ref.class>!<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 42,
@@ -54539,7 +56760,7 @@
                     "key.offset" : 268
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> liveCells<\/decl.name>: LiveCells<\/ref.class>!<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 26,
@@ -54558,7 +56779,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var environment: ListEnvironment<\/Type>!<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct>!<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 34,
@@ -54579,7 +56800,7 @@
                 "key.annotated_decl" : "func numberOfSections(in collectionView: UICollectionView<\/Type>) -> Int<\/Type><\/Declaration>",
                 "key.bodylength" : 66,
                 "key.bodyoffset" : 430,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> numberOfSections<\/decl.name>(in<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 142,
@@ -54607,7 +56828,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, numberOfItemsInSection section: Int<\/Type>) -> Int<\/Type><\/Declaration>",
                 "key.bodylength" : 128,
                 "key.bodyoffset" : 624,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, numberOfItemsInSection<\/decl.var.parameter.argument_label> section<\/decl.var.parameter.name>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Int<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 238,
@@ -54640,7 +56861,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let section: PresentationState<\/Type>.SectionState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> section<\/decl.name>: PresentationState<\/ref.class>.SectionState<\/ref.class><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 54,
@@ -54665,7 +56886,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, cellForItemAt indexPath: IndexPath<\/Type>) -> UICollectionViewCell<\/Type><\/Declaration>",
                 "key.bodylength" : 469,
                 "key.bodyoffset" : 930,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, cellForItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionViewCell<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 629,
@@ -54698,7 +56919,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -54715,7 +56936,7 @@
                   },
                   {
                     "key.annotated_decl" : "let cell: AnyItemCell<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> cell<\/decl.name>: AnyItemCell<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 175,
@@ -54745,7 +56966,7 @@
                     "key.offset" : 1418
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> headerFooterReuseCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 48,
@@ -54765,7 +56986,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, viewForSupplementaryElementOfKind kind: String<\/Type>, at indexPath: IndexPath<\/Type>) -> UICollectionReusableView<\/Type><\/Declaration>",
                 "key.bodylength" : 935,
                 "key.bodyoffset" : 1708,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, viewForSupplementaryElementOfKind<\/decl.var.parameter.argument_label> kind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> UICollectionReusableView<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1152,
@@ -54798,7 +57019,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let container: SupplementaryContainerView<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> container<\/decl.name>: SupplementaryContainerView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 262,
@@ -54823,7 +57044,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, canMoveItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>",
                 "key.bodylength" : 139,
                 "key.bodyoffset" : 2771,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, canMoveItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 249,
@@ -54856,7 +57077,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -54881,7 +57102,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, moveItemAt sourceIndexPath: IndexPath<\/Type>, to destinationIndexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 461,
                 "key.bodyoffset" : 3119,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, moveItemAt<\/decl.var.parameter.argument_label> sourceIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label> destinationIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 652,
@@ -54914,7 +57135,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.DataSource.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 64,
@@ -54947,7 +57168,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 10082,
     "key.offset" : 0,
@@ -54956,7 +57177,7 @@
         "key.annotated_decl" : "public final class ListView : UIView<\/Type>, KeyboardObserverDelegate<\/Declaration>",
         "key.bodylength" : 9963,
         "key.bodyoffset" : 117,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 9984,
@@ -54996,7 +57217,7 @@
                 "key.offset" : 181
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Delegate<\/decl.name> : NSObject<\/ref.class>, UICollectionViewDelegate<\/ref.protocol>, CollectionViewLayoutDelegate<\/ref.protocol><\/decl.class>",
             "key.inheritedtypes" : [
               {
@@ -55029,7 +57250,7 @@
                     "key.offset" : 224
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> view<\/decl.name>: ListView<\/ref.class>!<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 20,
@@ -55055,7 +57276,7 @@
                     "key.offset" : 261
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "unowned<\/syntaxtype.keyword> var<\/syntaxtype.keyword> presentationState<\/decl.name>: PresentationState<\/ref.class>!<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 42,
@@ -55081,7 +57302,7 @@
                     "key.offset" : 329
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> itemMeasurementCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 46,
@@ -55106,7 +57327,7 @@
                     "key.offset" : 392
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> headerFooterMeasurementCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 54,
@@ -55131,7 +57352,7 @@
                     "key.offset" : 472
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> headerFooterViewCache<\/decl.name>: ReusableViewCache<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 47,
@@ -55159,7 +57380,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, shouldHighlightItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>",
                 "key.bodylength" : 239,
                 "key.bodyoffset" : 713,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, shouldHighlightItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 357,
@@ -55213,7 +57434,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -55238,7 +57459,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, didHighlightItemAt indexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 153,
                 "key.bodyoffset" : 1077,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didHighlightItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 260,
@@ -55292,7 +57513,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -55317,7 +57538,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, didUnhighlightItemAt indexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 153,
                 "key.bodyoffset" : 1357,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didUnhighlightItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 262,
@@ -55371,7 +57592,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -55396,7 +57617,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, shouldSelectItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>",
                 "key.bodylength" : 239,
                 "key.bodyoffset" : 1643,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, shouldSelectItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 354,
@@ -55450,7 +57671,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -55475,7 +57696,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, shouldDeselectItemAt indexPath: IndexPath<\/Type>) -> Bool<\/Type><\/Declaration>",
                 "key.bodylength" : 33,
                 "key.bodyoffset" : 2017,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, shouldDeselectItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 150,
@@ -55538,7 +57759,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, didSelectItemAt indexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 632,
                 "key.bodyoffset" : 2172,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didSelectItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 736,
@@ -55592,7 +57813,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -55617,7 +57838,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, didDeselectItemAt indexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 272,
                 "key.bodyoffset" : 2928,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didDeselectItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 378,
@@ -55671,7 +57892,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -55701,7 +57922,7 @@
                     "key.offset" : 3219
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> oldSelectedItems<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 46,
@@ -55729,7 +57950,7 @@
                 ],
                 "key.bodylength" : 684,
                 "key.bodyoffset" : 3330,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performOnSelectChanged<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 716,
@@ -55743,7 +57964,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let old: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> old<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 31,
@@ -55760,7 +57981,7 @@
                   },
                   {
                     "key.annotated_decl" : "let new: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> new<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 78,
@@ -55790,7 +58011,7 @@
                     "key.offset" : 4033
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> displayedItems<\/decl.name>: [ObjectIdentifier<\/ref.struct> : AnyPresentationItemState<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 70,
@@ -55811,7 +58032,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, willDisplay cell: UICollectionViewCell<\/Type>, forItemAt indexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 241,
                 "key.bodyoffset" : 4316,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, willDisplay<\/decl.var.parameter.argument_label> cell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, forItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 429,
@@ -55865,7 +58086,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 53,
@@ -55890,7 +58111,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, didEndDisplaying cell: UICollectionViewCell<\/Type>, forItemAt indexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 192,
                 "key.bodyoffset" : 4768,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didEndDisplaying<\/decl.var.parameter.argument_label> cell<\/decl.var.parameter.name>: UICollectionViewCell<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, forItemAt<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 385,
@@ -55958,7 +58179,7 @@
                     "key.offset" : 4979
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> displayedSupplementaryItems<\/decl.name>: [ObjectIdentifier<\/ref.struct> : PresentationState<\/ref.class>.HeaderFooterViewStatePair<\/ref.class>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 102,
@@ -55979,7 +58200,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, willDisplaySupplementaryView anyView: UICollectionReusableView<\/Type>, forElementKind kindString: String<\/Type>, at indexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 893,
                 "key.bodyoffset" : 5358,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, willDisplaySupplementaryView<\/decl.var.parameter.argument_label> anyView<\/decl.var.parameter.name>: UICollectionReusableView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, forElementKind<\/decl.var.parameter.argument_label> kindString<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1145,
@@ -56033,7 +58254,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let container: SupplementaryContainerView<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> container<\/decl.name>: SupplementaryContainerView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 54,
@@ -56050,7 +58271,7 @@
                   },
                   {
                     "key.annotated_decl" : "let kind: SupplementaryKind<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 51,
@@ -56067,7 +58288,7 @@
                   },
                   {
                     "key.annotated_decl" : "let headerFooter: PresentationState<\/Type>.HeaderFooterViewStatePair<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> headerFooter<\/decl.name>: PresentationState<\/ref.class>.HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 563,
@@ -56092,7 +58313,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, didEndDisplayingSupplementaryView view: UICollectionReusableView<\/Type>, forElementOfKind elementKind: String<\/Type>, at indexPath: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 221,
                 "key.bodyoffset" : 6526,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, didEndDisplayingSupplementaryView<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UICollectionReusableView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, forElementOfKind<\/decl.var.parameter.argument_label> elementKind<\/decl.var.parameter.name>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, at<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 478,
@@ -56155,7 +58376,7 @@
                 "key.annotated_decl" : "func collectionView(_ collectionView: UICollectionView<\/Type>, targetIndexPathForMoveFromItemAt originalIndexPath: IndexPath<\/Type>, toProposedIndexPath proposedIndexPath: IndexPath<\/Type>) -> IndexPath<\/Type><\/Declaration>",
                 "key.bodylength" : 598,
                 "key.bodyoffset" : 7005,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> collectionView<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, targetIndexPathForMoveFromItemAt<\/decl.var.parameter.argument_label> originalIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, toProposedIndexPath<\/decl.var.parameter.argument_label> proposedIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 838,
@@ -56226,7 +58447,7 @@
                 "key.annotated_decl" : "func listViewLayoutUpdatedItemPositions(_ collectionView: UICollectionView<\/Type>)<\/Declaration>",
                 "key.bodylength" : 67,
                 "key.bodyoffset" : 7763,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listViewLayoutUpdatedItemPositions<\/decl.name>(_<\/decl.var.parameter.argument_label> collectionView<\/decl.var.parameter.name>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 154,
@@ -56254,7 +58475,7 @@
                 "key.annotated_decl" : "func listLayoutContent(defaults: ListLayoutDefaults<\/Type>) -> ListLayoutContent<\/Type><\/Declaration>",
                 "key.bodylength" : 166,
                 "key.bodyoffset" : 7954,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> listLayoutContent<\/decl.name>(defaults<\/decl.var.parameter.argument_label>: ListLayoutDefaults<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ListLayoutContent<\/ref.class><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 272,
@@ -56290,7 +58511,7 @@
                 "key.annotated_decl" : "func scrollViewWillBeginDragging(_ scrollView: UIScrollView<\/Type>)<\/Declaration>",
                 "key.bodylength" : 104,
                 "key.bodyoffset" : 8248,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> scrollViewWillBeginDragging<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 175,
@@ -56318,7 +58539,7 @@
                 "key.annotated_decl" : "func scrollViewDidEndDecelerating(_ scrollView: UIScrollView<\/Type>)<\/Declaration>",
                 "key.bodylength" : 81,
                 "key.bodyoffset" : 8442,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> scrollViewDidEndDecelerating<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 153,
@@ -56346,7 +58567,7 @@
                 "key.annotated_decl" : "func scrollViewShouldScrollToTop(_ scrollView: UIScrollView<\/Type>) -> Bool<\/Type><\/Declaration>",
                 "key.bodylength" : 151,
                 "key.bodyoffset" : 8628,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> scrollViewShouldScrollToTop<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 230,
@@ -56374,7 +58595,7 @@
                 "key.annotated_decl" : "func scrollViewDidScrollToTop(_ scrollView: UIScrollView<\/Type>)<\/Declaration>",
                 "key.bodylength" : 76,
                 "key.bodyoffset" : 8865,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> scrollViewDidScrollToTop<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 144,
@@ -56407,7 +58628,7 @@
                     "key.offset" : 8960
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastPosition<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 32,
@@ -56428,7 +58649,7 @@
                 "key.annotated_decl" : "func scrollViewDidScroll(_ scrollView: UIScrollView<\/Type>)<\/Declaration>",
                 "key.bodylength" : 992,
                 "key.bodyoffset" : 9080,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> scrollViewDidScroll<\/decl.name>(_<\/decl.var.parameter.argument_label> scrollView<\/decl.var.parameter.name>: UIScrollView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1055,
@@ -56447,7 +58668,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let scrollingDown: Bool<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Delegate.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> scrollingDown<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 66,
@@ -56480,7 +58701,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 1853,
     "key.offset" : 0,
@@ -56489,7 +58710,7 @@
         "key.annotated_decl" : "public final class ListView : UIView, KeyboardObserverDelegate<\/Declaration>",
         "key.bodylength" : 1712,
         "key.bodyoffset" : 139,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView, KeyboardObserverDelegate<\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1733,
@@ -56512,7 +58733,7 @@
             ],
             "key.bodylength" : 1674,
             "key.bodyoffset" : 175,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> LayoutManager<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 1700,
@@ -56534,7 +58755,7 @@
                     "key.offset" : 184
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
                 "key.fully_annotated_decl" : "unowned<\/syntaxtype.keyword> let<\/syntaxtype.keyword> collectionView<\/decl.name>: UICollectionView<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 37,
@@ -56559,7 +58780,7 @@
                     "key.offset" : 255
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> collectionViewLayout<\/decl.name>: CollectionViewLayout<\/ref.class><\/decl.var.type> { get }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 47,
@@ -56580,7 +58801,7 @@
                 "key.annotated_decl" : "init(layout collectionViewLayout: CollectionViewLayout<\/Type>, collectionView: UICollectionView<\/Type>)<\/Declaration>",
                 "key.bodylength" : 119,
                 "key.bodyoffset" : 434,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(layout<\/decl.var.parameter.argument_label> collectionViewLayout<\/decl.var.parameter.name>: CollectionViewLayout<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, collectionView<\/decl.var.parameter.argument_label>: UICollectionView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 221,
@@ -56603,7 +58824,7 @@
                 "key.annotated_decl" : "func set(layout: LayoutDescription<\/Type>, animated: Bool<\/Type>, completion: @escaping () -> ())<\/Declaration>",
                 "key.bodylength" : 1175,
                 "key.bodyoffset" : 668,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.LayoutManager.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> set<\/decl.name>(layout<\/decl.var.parameter.argument_label>: LayoutDescription<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1272,
@@ -56634,7 +58855,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Storage.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Storage.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 837,
     "key.offset" : 0,
@@ -56651,7 +58872,7 @@
         ],
         "key.bodylength" : 710,
         "key.bodyoffset" : 125,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView, KeyboardObserverDelegate<\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 731,
@@ -56675,7 +58896,7 @@
             ],
             "key.bodylength" : 678,
             "key.bodyoffset" : 155,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> Storage<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 698,
@@ -56690,7 +58911,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var allContent: Content<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> allContent<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 36,
@@ -56709,7 +58930,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let presentationState: PresentationState<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationState<\/decl.name>: PresentationState<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 63,
@@ -56729,7 +58950,7 @@
                 "key.annotated_decl" : "func moveItem(from: IndexPath<\/Type>, to: IndexPath<\/Type>)<\/Declaration>",
                 "key.bodylength" : 130,
                 "key.bodyoffset" : 356,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> moveItem<\/decl.name>(from<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 188,
@@ -56752,7 +58973,7 @@
                 "key.annotated_decl" : "func remove(item itemToRemove: AnyPresentationItemState<\/Type>) -> IndexPath<\/Type>?<\/Declaration>",
                 "key.bodylength" : 241,
                 "key.bodyoffset" : 586,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.Storage.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> remove<\/decl.name>(item<\/decl.var.parameter.argument_label> itemToRemove<\/decl.var.parameter.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> IndexPath<\/ref.struct>?<\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 323,
@@ -56783,7 +59004,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 5840,
     "key.offset" : 0,
@@ -56792,7 +59013,7 @@
         "key.annotated_decl" : "public final class ListView : UIView<\/Type>, KeyboardObserverDelegate<\/Declaration>",
         "key.bodylength" : 3953,
         "key.bodyoffset" : 141,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 3974,
@@ -56815,7 +59036,7 @@
             ],
             "key.bodylength" : 3914,
             "key.bodyoffset" : 178,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> VisibleContent<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 3941,
@@ -56837,7 +59058,7 @@
                     "key.offset" : 187
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> headerFooters<\/decl.name>: Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/decl.var.type> { get }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 45,
@@ -56863,7 +59084,7 @@
                     "key.offset" : 254
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> items<\/decl.name>: Set<\/ref.struct><Item<\/ref.struct>><\/decl.var.type> { get }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 29,
@@ -56884,7 +59105,7 @@
                 "key.annotated_decl" : "func update(with view: ListView<\/Type>)<\/Declaration>",
                 "key.bodylength" : 1356,
                 "key.bodyoffset" : 357,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: ListView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1400,
@@ -56898,7 +59119,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let newItems: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.Item<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newItems<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.Item<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 73,
@@ -56915,7 +59136,7 @@
                   },
                   {
                     "key.annotated_decl" : "let newHeaderFooters: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.HeaderFooter<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newHeaderFooters<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 73,
@@ -56932,7 +59153,7 @@
                   },
                   {
                     "key.annotated_decl" : "let removed: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.Item<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.Item<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 46,
@@ -56949,7 +59170,7 @@
                   },
                   {
                     "key.annotated_decl" : "let added: Set<\/Type><ListView<\/Type>.VisibleContent<\/Type>.Item<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> added<\/decl.name>: Set<\/ref.struct><ListView<\/ref.class>.VisibleContent<\/ref.class>.Item<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 44,
@@ -56966,7 +59187,7 @@
                   },
                   {
                     "key.annotated_decl" : "let callStateReader: Bool<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> callStateReader<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 72,
@@ -56991,7 +59212,7 @@
                 "key.annotated_decl" : "var info: Info<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 358,
                 "key.bodyoffset" : 1749,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> info<\/decl.name>: Info<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 376,
@@ -57011,7 +59232,7 @@
                 "key.annotated_decl" : "func updateVisibleViews(with environment: ListEnvironment<\/Type>)<\/Declaration>",
                 "key.bodylength" : 390,
                 "key.bodyoffset" : 2195,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateVisibleViews<\/decl.name>(with<\/decl.var.parameter.argument_label> environment<\/decl.var.parameter.name>: ListEnvironment<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 460,
@@ -57041,7 +59262,7 @@
                 ],
                 "key.bodylength" : 1382,
                 "key.bodyoffset" : 2704,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> calculateVisibleContent<\/decl.name>(in<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: ListView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>) -> (Set<\/ref.struct><Item<\/ref.struct>><\/tuple.element.type><\/tuple.element>, Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 1475,
@@ -57055,7 +59276,7 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let visibleFrame: CGRect<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 45,
@@ -57072,7 +59293,7 @@
                   },
                   {
                     "key.annotated_decl" : "let visibleAttributes: [UICollectionViewLayoutAttributes<\/Type>]<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleAttributes<\/decl.name>: [UICollectionViewLayoutAttributes<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 108,
@@ -57089,7 +59310,7 @@
                   },
                   {
                     "key.annotated_decl" : "var items: Set<\/Type><Item<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: Set<\/ref.struct><Item<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 26,
@@ -57111,7 +59332,7 @@
                   },
                   {
                     "key.annotated_decl" : "var headerFooters: Set<\/Type><HeaderFooter<\/Type>><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> headerFooters<\/decl.name>: Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
                     "key.length" : 42,
@@ -57150,7 +59371,7 @@
         "key.annotated_decl" : "final class VisibleContent<\/Declaration>",
         "key.bodylength" : 1706,
         "key.bodyoffset" : 4132,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
         "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> VisibleContent<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1742,
@@ -57173,7 +59394,7 @@
                 "key.offset" : 4159
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> HeaderFooter<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -57193,7 +59414,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let kind: SupplementaryKind<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 28,
@@ -57211,7 +59432,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let indexPath: IndexPath<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
@@ -57229,7 +59450,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let headerFooter: PresentationState<\/Type>.HeaderFooterViewStatePair<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> headerFooter<\/decl.name>: PresentationState<\/ref.class>.HeaderFooterViewStatePair<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 62,
@@ -57279,7 +59500,7 @@
                   }
                 ],
                 "key.doc.type" : "Function",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>",
                 "key.kind" : "source.lang.swift.decl.function.method.static",
                 "key.length" : 175,
@@ -57781,7 +60002,7 @@
                   }
                 ],
                 "key.doc.type" : "Function",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 201,
@@ -57820,7 +60041,7 @@
                 "key.offset" : 4766
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Item<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -57840,7 +60061,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let indexPath: IndexPath<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
@@ -57858,7 +60079,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 35,
@@ -57908,7 +60129,7 @@
                   }
                 ],
                 "key.doc.type" : "Function",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> == <\/decl.name>(lhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.operator.infix>",
                 "key.kind" : "source.lang.swift.decl.function.method.static",
                 "key.length" : 135,
@@ -58410,7 +60631,7 @@
                   }
                 ],
                 "key.doc.type" : "Function",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> hash<\/decl.name>(into<\/decl.var.parameter.argument_label> hasher<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Hasher<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 155,
@@ -58445,8 +60666,8 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Note: Because this type exposes index paths and the internal `SupplementaryKind`,\nit is intended for internal usage or unit testing purposes only.\nPublic consumers and APIs should utilize `ListScrollPositionInfo`.",
             "key.doc.declaration" : "struct Info : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
-            "key.doc.full_as_xml" : "Info<\/Name>s:10ListableUI8ListViewC14VisibleContentC4InfoV<\/USR>struct Info : Equatable<\/Declaration>Note: Because this type exposes index paths and the internal SupplementaryKind<\/codeVoice>, it is intended for internal usage or unit testing purposes only. Public consumers and APIs should utilize ListScrollPositionInfo<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+            "key.doc.full_as_xml" : "Info<\/Name>s:10ListableUI8ListViewC14VisibleContentC4InfoV<\/USR>struct Info : Equatable<\/Declaration>Note: Because this type exposes index paths and the internal SupplementaryKind<\/codeVoice>, it is intended for internal usage or unit testing purposes only. Public consumers and APIs should utilize ListScrollPositionInfo<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
             "key.doc.line" : 159,
             "key.doc.name" : "Info",
             "key.doc.type" : "Class",
@@ -58459,7 +60680,7 @@
                 "key.offset" : 5452
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
             "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> Info<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -58479,7 +60700,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var headerFooters: Set<\/Type><HeaderFooter<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> headerFooters<\/decl.name>: Set<\/ref.struct><HeaderFooter<\/ref.struct>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 37,
@@ -58498,7 +60719,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var items: Set<\/Type><Item<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> items<\/decl.name>: Set<\/ref.struct><Item<\/ref.struct>><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
@@ -58526,7 +60747,7 @@
                     "key.offset" : 5583
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListView<\/ref.class>.VisibleContent<\/ref.class>.Info<\/ref.struct>.HeaderFooter<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
                 "key.inheritedtypes" : [
                   {
@@ -58546,7 +60767,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var kind: SupplementaryKind<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> kind<\/decl.name>: SupplementaryKind<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 28,
@@ -58565,7 +60786,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var indexPath: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 25,
@@ -58598,7 +60819,7 @@
                     "key.offset" : 5722
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> ListView<\/ref.class>.VisibleContent<\/ref.class>.Info<\/ref.struct>.Item<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
                 "key.inheritedtypes" : [
                   {
@@ -58618,7 +60839,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var identifier: AnyIdentifier<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 30,
@@ -58637,7 +60858,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var indexPath: IndexPath<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.VisibleContent.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 25,
@@ -58671,9 +60892,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 37278,
+    "key.length" : 37341,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -58691,7 +60912,7 @@
             "key.offset" : 101
           }
         ],
-        "key.bodylength" : 33709,
+        "key.bodylength" : 33772,
         "key.bodyoffset" : 165,
         "key.elements" : [
           {
@@ -58705,7 +60926,7 @@
             "key.offset" : 139
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/ref.protocol><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -58716,13 +60937,13 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.class",
-        "key.length" : 33761,
+        "key.length" : 33824,
         "key.name" : "ListView",
         "key.namelength" : 8,
         "key.nameoffset" : 120,
         "key.offset" : 114,
         "key.parsed_declaration" : "public final class ListView : UIView, KeyboardObserverDelegate",
-        "key.parsed_scope.end" : 1021,
+        "key.parsed_scope.end" : 1022,
         "key.parsed_scope.start" : 11,
         "key.substructure" : [
           {
@@ -58743,12 +60964,12 @@
                 "key.offset" : 217
               }
             ],
-            "key.bodylength" : 2463,
+            "key.bodylength" : 2464,
             "key.bodyoffset" : 297,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(frame<\/decl.var.parameter.argument_label>: CGRect<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: Appearance<\/ref.struct><\/decl.var.parameter.type> = Appearance()<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 2537,
+            "key.length" : 2538,
             "key.name" : "init(frame:appearance:)",
             "key.namelength" : 67,
             "key.nameoffset" : 224,
@@ -58759,15 +60980,15 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let initialLayout: CollectionViewLayout<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> initialLayout<\/decl.name>: CollectionViewLayout<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
-                "key.length" : 205,
+                "key.length" : 206,
                 "key.name" : "initialLayout",
                 "key.namelength" : 13,
                 "key.nameoffset" : 799,
                 "key.offset" : 795,
-                "key.parsed_declaration" : "let initialLayout = CollectionViewLayout(\n    delegate: self.delegate,\n    layoutDescription: .list(),\n    appearance: self.appearance,\n    behavior: self.behavior\n)",
+                "key.parsed_declaration" : "let initialLayout = CollectionViewLayout(\n    delegate: self.delegate,\n    layoutDescription: .table(),\n    appearance: self.appearance,\n    behavior: self.behavior\n)",
                 "key.parsed_scope.end" : 36,
                 "key.parsed_scope.start" : 36,
                 "key.typename" : "CollectionViewLayout",
@@ -58783,15 +61004,15 @@
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "deinit<\/Declaration>",
             "key.bodylength" : 571,
-            "key.bodyoffset" : 2783,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 2784,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "deinit<\/syntaxtype.keyword><\/decl.function.destructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 584,
             "key.name" : "deinit",
             "key.namelength" : 6,
-            "key.nameoffset" : 2771,
-            "key.offset" : 2771,
+            "key.nameoffset" : 2772,
+            "key.offset" : 2772,
             "key.parsed_declaration" : "deinit",
             "key.parsed_scope.end" : 112,
             "key.parsed_scope.start" : 97,
@@ -58813,24 +61034,24 @@
               {
                 "key.attribute" : "source.decl.attribute.required",
                 "key.length" : 8,
-                "key.offset" : 3396
+                "key.offset" : 3397
               },
               {
                 "key.attribute" : "source.decl.attribute.available",
                 "key.length" : 26,
-                "key.offset" : 3365
+                "key.offset" : 3366
               }
             ],
             "key.bodylength" : 17,
-            "key.bodyoffset" : 3428,
+            "key.bodyoffset" : 3429,
             "key.doc.comment" : "Even though these are zeroing weak references in UIKIt as of iOS 9.0,\n\nWe still want to nil these out, because _our_ `delegate` and `dataSource`\nobjects have unowned references back to us (`ListView`). We do not want\nany `delegate` or `dataSource` callbacks to trigger referencing\nthat unowned reference (eg, in `scrollViewDidScroll:`).",
             "key.internal_diagnostic" : "Unavailable in the current compilation context.",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 41,
             "key.name" : "init(coder:)",
             "key.namelength" : 21,
-            "key.nameoffset" : 3405,
-            "key.offset" : 3405,
+            "key.nameoffset" : 3406,
+            "key.offset" : 3406,
             "key.substructure" : [
 
             ]
@@ -58841,19 +61062,19 @@
             "key.name" : "MARK: Internal Properties",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 3466
+            "key.offset" : 3467
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let storage: Storage<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> storage<\/decl.name>: Storage<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
             "key.name" : "storage",
             "key.namelength" : 7,
-            "key.nameoffset" : 3512,
-            "key.offset" : 3508,
+            "key.nameoffset" : 3513,
+            "key.offset" : 3509,
             "key.parsed_declaration" : "let storage : Storage",
             "key.parsed_scope.end" : 121,
             "key.parsed_scope.start" : 121,
@@ -58864,14 +61085,14 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let collectionView: CollectionView<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> collectionView<\/decl.name>: CollectionView<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 35,
             "key.name" : "collectionView",
             "key.namelength" : 14,
-            "key.nameoffset" : 3538,
-            "key.offset" : 3534,
+            "key.nameoffset" : 3539,
+            "key.offset" : 3535,
             "key.parsed_declaration" : "let collectionView : CollectionView",
             "key.parsed_scope.end" : 122,
             "key.parsed_scope.start" : 122,
@@ -58882,14 +61103,14 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let delegate: Delegate<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> delegate<\/decl.name>: Delegate<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
             "key.name" : "delegate",
             "key.namelength" : 8,
-            "key.nameoffset" : 3578,
-            "key.offset" : 3574,
+            "key.nameoffset" : 3579,
+            "key.offset" : 3575,
             "key.parsed_declaration" : "let delegate : Delegate",
             "key.parsed_scope.end" : 123,
             "key.parsed_scope.start" : 123,
@@ -58900,14 +61121,14 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let layoutManager: LayoutManager<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> layoutManager<\/decl.name>: LayoutManager<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
             "key.name" : "layoutManager",
             "key.namelength" : 13,
-            "key.nameoffset" : 3606,
-            "key.offset" : 3602,
+            "key.nameoffset" : 3607,
+            "key.offset" : 3603,
             "key.parsed_declaration" : "let layoutManager : LayoutManager",
             "key.parsed_scope.end" : 124,
             "key.parsed_scope.start" : 124,
@@ -58918,14 +61139,14 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let liveCells: LiveCells<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> liveCells<\/decl.name>: LiveCells<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 25,
             "key.name" : "liveCells",
             "key.namelength" : 9,
-            "key.nameoffset" : 3644,
-            "key.offset" : 3640,
+            "key.nameoffset" : 3645,
+            "key.offset" : 3641,
             "key.parsed_declaration" : "let liveCells : LiveCells",
             "key.parsed_scope.end" : 125,
             "key.parsed_scope.start" : 125,
@@ -58937,15 +61158,15 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var collectionViewLayout: CollectionViewLayout<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 53,
-            "key.bodyoffset" : 3724,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 3725,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> collectionViewLayout<\/decl.name>: CollectionViewLayout<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 103,
             "key.name" : "collectionViewLayout",
             "key.namelength" : 20,
-            "key.nameoffset" : 3679,
-            "key.offset" : 3675,
+            "key.nameoffset" : 3680,
+            "key.offset" : 3676,
             "key.parsed_declaration" : "var collectionViewLayout : CollectionViewLayout",
             "key.parsed_scope.end" : 129,
             "key.parsed_scope.start" : 127,
@@ -58957,15 +61178,15 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var performsContentCallbacks: Bool<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 132,
-            "key.bodyoffset" : 3832,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 3833,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> performsContentCallbacks<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 177,
             "key.name" : "performsContentCallbacks",
             "key.namelength" : 24,
-            "key.nameoffset" : 3792,
-            "key.offset" : 3788,
+            "key.nameoffset" : 3793,
+            "key.offset" : 3789,
             "key.parsed_declaration" : "var performsContentCallbacks : Bool = true",
             "key.parsed_scope.end" : 135,
             "key.parsed_scope.start" : 131,
@@ -58981,17 +61202,17 @@
               {
                 "key.attribute" : "source.decl.attribute.setter_access.private",
                 "key.length" : 12,
-                "key.offset" : 3975
+                "key.offset" : 3976
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> visibleContent<\/decl.name>: VisibleContent<\/ref.class><\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 35,
             "key.name" : "visibleContent",
             "key.namelength" : 14,
-            "key.nameoffset" : 3992,
-            "key.offset" : 3988,
+            "key.nameoffset" : 3993,
+            "key.offset" : 3989,
             "key.parsed_declaration" : "private(set) var visibleContent : VisibleContent",
             "key.parsed_scope.end" : 137,
             "key.parsed_scope.start" : 137,
@@ -59006,7 +61227,7 @@
             "key.name" : "MARK: Private Properties",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 4043
+            "key.offset" : 4044
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.private",
@@ -59015,17 +61236,17 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 4092
+                "key.offset" : 4093
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sourcePresenter<\/decl.name>: AnySourcePresenter<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 40,
             "key.name" : "sourcePresenter",
             "key.namelength" : 15,
-            "key.nameoffset" : 4104,
-            "key.offset" : 4100,
+            "key.nameoffset" : 4105,
+            "key.offset" : 4101,
             "key.parsed_declaration" : "private var sourcePresenter : AnySourcePresenter",
             "key.parsed_scope.end" : 143,
             "key.parsed_scope.start" : 143,
@@ -59041,17 +61262,17 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 4146
+                "key.offset" : 4147
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> autoScrollAction<\/decl.name>: AutoScrollAction<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
             "key.name" : "autoScrollAction",
             "key.namelength" : 16,
-            "key.nameoffset" : 4158,
-            "key.offset" : 4154,
+            "key.nameoffset" : 4159,
+            "key.offset" : 4155,
             "key.parsed_declaration" : "private var autoScrollAction : AutoScrollAction",
             "key.parsed_scope.end" : 145,
             "key.parsed_scope.start" : 145,
@@ -59067,17 +61288,17 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 4203
+                "key.offset" : 4204
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> dataSource<\/decl.name>: DataSource<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
             "key.name" : "dataSource",
             "key.namelength" : 10,
-            "key.nameoffset" : 4215,
-            "key.offset" : 4211,
+            "key.nameoffset" : 4216,
+            "key.offset" : 4212,
             "key.parsed_declaration" : "private let dataSource : DataSource",
             "key.parsed_scope.end" : 147,
             "key.parsed_scope.start" : 147,
@@ -59092,17 +61313,17 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 4248
+                "key.offset" : 4249
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> keyboardObserver<\/decl.name>: KeyboardObserver<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
             "key.name" : "keyboardObserver",
             "key.namelength" : 16,
-            "key.nameoffset" : 4260,
-            "key.offset" : 4256,
+            "key.nameoffset" : 4261,
+            "key.offset" : 4257,
             "key.parsed_declaration" : "private let keyboardObserver : KeyboardObserver",
             "key.parsed_scope.end" : 149,
             "key.parsed_scope.start" : 149,
@@ -59116,7 +61337,7 @@
             "key.name" : "MARK: Debugging",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 4315
+            "key.offset" : 4316
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -59125,17 +61346,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4347
+                "key.offset" : 4348
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> debuggingIdentifier<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
             "key.name" : "debuggingIdentifier",
             "key.namelength" : 19,
-            "key.nameoffset" : 4358,
-            "key.offset" : 4354,
+            "key.nameoffset" : 4359,
+            "key.offset" : 4355,
             "key.parsed_declaration" : "public var debuggingIdentifier : String? = nil",
             "key.parsed_scope.end" : 155,
             "key.parsed_scope.start" : 155,
@@ -59150,7 +61371,7 @@
             "key.name" : "MARK: Appearance",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 4413
+            "key.offset" : 4414
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -59159,19 +61380,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 4446
+                "key.offset" : 4447
               }
             ],
             "key.bodylength" : 170,
-            "key.bodyoffset" : 4482,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 4483,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> appearance<\/decl.name>: Appearance<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 200,
             "key.name" : "appearance",
             "key.namelength" : 10,
-            "key.nameoffset" : 4457,
-            "key.offset" : 4453,
+            "key.nameoffset" : 4458,
+            "key.offset" : 4454,
             "key.parsed_declaration" : "public var appearance : Appearance",
             "key.parsed_scope.end" : 169,
             "key.parsed_scope.start" : 161,
@@ -59201,19 +61422,19 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 4663
+                "key.offset" : 4664
               }
             ],
             "key.bodylength" : 266,
-            "key.bodyoffset" : 4699,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 4700,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> applyAppearance<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 295,
             "key.name" : "applyAppearance()",
             "key.namelength" : 17,
-            "key.nameoffset" : 4676,
-            "key.offset" : 4671,
+            "key.nameoffset" : 4677,
+            "key.offset" : 4672,
             "key.parsed_declaration" : "private func applyAppearance()",
             "key.parsed_scope.end" : 181,
             "key.parsed_scope.start" : 171,
@@ -59230,7 +61451,7 @@
             "key.name" : "MARK: Layout",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 4986
+            "key.offset" : 4987
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -59239,19 +61460,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5019
+                "key.offset" : 5020
               }
             ],
             "key.bodylength" : 489,
-            "key.bodyoffset" : 5075,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 5076,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollPositionInfo<\/decl.name>: ListScrollPositionInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 539,
             "key.name" : "scrollPositionInfo",
             "key.namelength" : 18,
-            "key.nameoffset" : 5030,
-            "key.offset" : 5026,
+            "key.nameoffset" : 5031,
+            "key.offset" : 5027,
             "key.parsed_declaration" : "public var scrollPositionInfo : ListScrollPositionInfo",
             "key.parsed_scope.end" : 198,
             "key.parsed_scope.start" : 187,
@@ -59261,14 +61482,14 @@
           },
           {
             "key.annotated_decl" : "let visibleItems: Set<\/Type><AnyIdentifier<\/Type>><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleItems<\/decl.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.local>",
             "key.kind" : "source.lang.swift.decl.var.local",
             "key.length" : 115,
             "key.name" : "visibleItems",
             "key.namelength" : 12,
-            "key.nameoffset" : 5088,
-            "key.offset" : 5084,
+            "key.nameoffset" : 5089,
+            "key.offset" : 5085,
             "key.parsed_declaration" : "let visibleItems = Set(self.visibleContent.items.map { item in\n    item.item.anyModel.identifier\n})",
             "key.parsed_scope.end" : 188,
             "key.parsed_scope.start" : 188,
@@ -59283,19 +61504,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5575
+                "key.offset" : 5576
               }
             ],
             "key.bodylength" : 125,
-            "key.bodyoffset" : 5614,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 5615,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: LayoutDescription<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 158,
             "key.name" : "layout",
             "key.namelength" : 6,
-            "key.nameoffset" : 5586,
-            "key.offset" : 5582,
+            "key.nameoffset" : 5587,
+            "key.offset" : 5583,
             "key.parsed_declaration" : "public var layout : LayoutDescription",
             "key.parsed_scope.end" : 203,
             "key.parsed_scope.start" : 200,
@@ -59311,19 +61532,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5746
+                "key.offset" : 5747
               }
             ],
             "key.bodylength" : 96,
-            "key.bodyoffset" : 5858,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 5859,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(layout<\/decl.var.parameter.argument_label>: LayoutDescription<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = {}<\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 202,
             "key.name" : "set(layout:animated:completion:)",
             "key.namelength" : 94,
-            "key.nameoffset" : 5758,
-            "key.offset" : 5753,
+            "key.nameoffset" : 5759,
+            "key.offset" : 5754,
             "key.parsed_declaration" : "public func set(layout : LayoutDescription, animated : Bool = false, completion : @escaping () -> () = {})",
             "key.parsed_scope.end" : 208,
             "key.parsed_scope.start" : 205,
@@ -59346,19 +61567,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 5965
+                "key.offset" : 5966
               }
             ],
             "key.bodylength" : 73,
-            "key.bodyoffset" : 5998,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 5999,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> contentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 100,
             "key.name" : "contentSize",
             "key.namelength" : 11,
-            "key.nameoffset" : 5976,
-            "key.offset" : 5972,
+            "key.nameoffset" : 5977,
+            "key.offset" : 5973,
             "key.parsed_declaration" : "public var contentSize : CGSize",
             "key.parsed_scope.end" : 212,
             "key.parsed_scope.start" : 210,
@@ -59380,7 +61601,7 @@
             "key.name" : "MARK: Behavior",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 6092
+            "key.offset" : 6093
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -59389,19 +61610,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 6123
+                "key.offset" : 6124
               }
             ],
             "key.bodylength" : 166,
-            "key.bodyoffset" : 6155,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 6156,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> behavior<\/decl.name>: Behavior<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 192,
             "key.name" : "behavior",
             "key.namelength" : 8,
-            "key.nameoffset" : 6134,
-            "key.offset" : 6130,
+            "key.nameoffset" : 6135,
+            "key.offset" : 6131,
             "key.parsed_declaration" : "public var behavior : Behavior",
             "key.parsed_scope.end" : 226,
             "key.parsed_scope.start" : 218,
@@ -59417,19 +61638,19 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 6332
+                "key.offset" : 6333
               }
             ],
             "key.bodylength" : 512,
-            "key.bodyoffset" : 6366,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 6367,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> applyBehavior<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 539,
             "key.name" : "applyBehavior()",
             "key.namelength" : 15,
-            "key.nameoffset" : 6345,
-            "key.offset" : 6340,
+            "key.nameoffset" : 6346,
+            "key.offset" : 6341,
             "key.parsed_declaration" : "private func applyBehavior()",
             "key.parsed_scope.end" : 241,
             "key.parsed_scope.start" : 228,
@@ -59447,19 +61668,19 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 6889
+                "key.offset" : 6890
               }
             ],
             "key.bodylength" : 298,
-            "key.bodyoffset" : 6957,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 6958,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateCollectionViewWithCurrentLayoutProperties<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 359,
             "key.name" : "updateCollectionViewWithCurrentLayoutProperties()",
             "key.namelength" : 49,
-            "key.nameoffset" : 6902,
-            "key.offset" : 6897,
+            "key.nameoffset" : 6903,
+            "key.offset" : 6898,
             "key.parsed_declaration" : "private func updateCollectionViewWithCurrentLayoutProperties()",
             "key.parsed_scope.end" : 251,
             "key.parsed_scope.start" : 243,
@@ -59477,33 +61698,33 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 7266
+                "key.offset" : 7267
               }
             ],
             "key.bodylength" : 467,
-            "key.bodyoffset" : 7320,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 7321,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateCollectionViewSelectionMode<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 514,
             "key.name" : "updateCollectionViewSelectionMode()",
             "key.namelength" : 35,
-            "key.nameoffset" : 7279,
-            "key.offset" : 7274,
+            "key.nameoffset" : 7280,
+            "key.offset" : 7275,
             "key.parsed_declaration" : "private func updateCollectionViewSelectionMode()",
             "key.parsed_scope.end" : 270,
             "key.parsed_scope.start" : 253,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let view: ListView<\/Type>.CollectionView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: ListView<\/ref.class>.CollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 30,
                 "key.name" : "view",
                 "key.namelength" : 4,
-                "key.nameoffset" : 7333,
-                "key.offset" : 7329,
+                "key.nameoffset" : 7334,
+                "key.offset" : 7330,
                 "key.parsed_declaration" : "let view = self.collectionView",
                 "key.parsed_scope.end" : 255,
                 "key.parsed_scope.start" : 255,
@@ -59522,7 +61743,7 @@
             "key.name" : "MARK: Scroll Insets",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 7808
+            "key.offset" : 7809
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -59531,19 +61752,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 7844
+                "key.offset" : 7845
               }
             ],
             "key.bodylength" : 188,
-            "key.bodyoffset" : 7893,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 7894,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> scrollIndicatorInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 231,
             "key.name" : "scrollIndicatorInsets",
             "key.namelength" : 21,
-            "key.nameoffset" : 7855,
-            "key.offset" : 7851,
+            "key.nameoffset" : 7856,
+            "key.offset" : 7852,
             "key.parsed_declaration" : "public var scrollIndicatorInsets : UIEdgeInsets",
             "key.parsed_scope.end" : 284,
             "key.parsed_scope.start" : 276,
@@ -59559,33 +61780,33 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 8096
+                "key.offset" : 8097
               }
             ],
             "key.bodylength" : 483,
-            "key.bodyoffset" : 8139,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 8140,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateScrollViewInsets<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 519,
             "key.name" : "updateScrollViewInsets()",
             "key.namelength" : 24,
-            "key.nameoffset" : 8109,
-            "key.offset" : 8104,
+            "key.nameoffset" : 8110,
+            "key.offset" : 8105,
             "key.parsed_declaration" : "private func updateScrollViewInsets()",
             "key.parsed_scope.end" : 299,
             "key.parsed_scope.start" : 286,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let contentInsets: UIEdgeInsets<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 149,
                 "key.name" : "contentInsets",
                 "key.namelength" : 13,
-                "key.nameoffset" : 8153,
-                "key.offset" : 8148,
+                "key.nameoffset" : 8154,
+                "key.offset" : 8149,
                 "key.parsed_declaration" : "let (contentInsets, scrollIndicatorInsets) = self.calculateScrollViewInsets(\n    with: self.keyboardObserver.currentFrame(in: self)\n)",
                 "key.parsed_scope.end" : 288,
                 "key.parsed_scope.start" : 288,
@@ -59595,14 +61816,14 @@
               },
               {
                 "key.annotated_decl" : "let scrollIndicatorInsets: UIEdgeInsets<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> scrollIndicatorInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 149,
                 "key.name" : "scrollIndicatorInsets",
                 "key.namelength" : 21,
-                "key.nameoffset" : 8168,
-                "key.offset" : 8148,
+                "key.nameoffset" : 8169,
+                "key.offset" : 8149,
                 "key.parsed_declaration" : "let (contentInsets, scrollIndicatorInsets) = self.calculateScrollViewInsets(\n    with: self.keyboardObserver.currentFrame(in: self)\n)",
                 "key.parsed_scope.end" : 288,
                 "key.parsed_scope.start" : 288,
@@ -59624,29 +61845,29 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func calculateScrollViewInsets(with keyboardFrame: KeyboardObserver<\/Type>.KeyboardFrame<\/Type>?) -> (UIEdgeInsets<\/Type>, UIEdgeInsets<\/Type>)<\/Declaration>",
             "key.bodylength" : 1040,
-            "key.bodyoffset" : 8755,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 8756,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> calculateScrollViewInsets<\/decl.name>(with<\/decl.var.parameter.argument_label> keyboardFrame<\/decl.var.parameter.name>: KeyboardObserver<\/ref.class>.KeyboardFrame<\/ref.enum>?<\/decl.var.parameter.type><\/decl.var.parameter>) -> (UIEdgeInsets<\/ref.struct><\/tuple.element.type><\/tuple.element>, UIEdgeInsets<\/ref.struct><\/tuple.element.type><\/tuple.element>)<\/tuple><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1163,
             "key.name" : "calculateScrollViewInsets(with:)",
             "key.namelength" : 79,
-            "key.nameoffset" : 8638,
-            "key.offset" : 8633,
+            "key.nameoffset" : 8639,
+            "key.offset" : 8634,
             "key.parsed_declaration" : "func calculateScrollViewInsets(with keyboardFrame : KeyboardObserver.KeyboardFrame?) -> (UIEdgeInsets, UIEdgeInsets)",
             "key.parsed_scope.end" : 336,
             "key.parsed_scope.start" : 301,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let keyboardBottomInset: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> keyboardBottomInset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 645,
                 "key.name" : "keyboardBottomInset",
                 "key.namelength" : 19,
-                "key.nameoffset" : 8768,
-                "key.offset" : 8764,
+                "key.nameoffset" : 8769,
+                "key.offset" : 8765,
                 "key.parsed_declaration" : "let keyboardBottomInset : CGFloat = {\n    \n    guard let keyboardFrame = keyboardFrame else {\n        return 0.0\n    }\n    \n    switch self.behavior.keyboardAdjustmentMode {\n    case .none:\n        return 0.0\n        \n    case .adjustsWhenVisible:\n        switch keyboardFrame {\n        case .nonOverlapping:\n            return 0.0\n            \n        case .overlapping(let frame):\n            return (self.bounds.size.height - frame.origin.y) - self.safeAreaInsets.bottom\n        }\n    }\n}()",
                 "key.parsed_scope.end" : 303,
                 "key.parsed_scope.start" : 303,
@@ -59656,14 +61877,14 @@
               },
               {
                 "key.annotated_decl" : "let scrollIndicatorInsets: UIEdgeInsets<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> scrollIndicatorInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 136,
                 "key.name" : "scrollIndicatorInsets",
                 "key.namelength" : 21,
-                "key.nameoffset" : 9431,
-                "key.offset" : 9427,
+                "key.nameoffset" : 9432,
+                "key.offset" : 9428,
                 "key.parsed_declaration" : "let scrollIndicatorInsets = modified(self.scrollIndicatorInsets) {\n    $0.bottom = max($0.bottom, keyboardBottomInset)\n}",
                 "key.parsed_scope.end" : 324,
                 "key.parsed_scope.start" : 324,
@@ -59678,14 +61899,14 @@
               },
               {
                 "key.annotated_decl" : "let contentInsets: UIEdgeInsets<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> contentInsets<\/decl.name>: UIEdgeInsets<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 146,
                 "key.name" : "contentInsets",
                 "key.namelength" : 13,
-                "key.nameoffset" : 9585,
-                "key.offset" : 9581,
+                "key.nameoffset" : 9586,
+                "key.offset" : 9582,
                 "key.parsed_declaration" : "let contentInsets = UIEdgeInsets(\n    top: 0,\n    left: 0,\n    bottom: keyboardBottomInset,\n    right: 0\n)",
                 "key.parsed_scope.end" : 328,
                 "key.parsed_scope.start" : 328,
@@ -59704,7 +61925,7 @@
             "key.name" : "MARK: KeyboardObserverDelegate",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 9816
+            "key.offset" : 9817
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.private",
@@ -59713,17 +61934,17 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 9863
+                "key.offset" : 9864
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> lastKeyboardFrame<\/decl.name>: KeyboardObserver<\/ref.class>.KeyboardFrame<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 61,
             "key.name" : "lastKeyboardFrame",
             "key.namelength" : 17,
-            "key.nameoffset" : 9875,
-            "key.offset" : 9871,
+            "key.nameoffset" : 9876,
+            "key.offset" : 9872,
             "key.parsed_declaration" : "private var lastKeyboardFrame : KeyboardObserver.KeyboardFrame? = nil",
             "key.parsed_scope.end" : 342,
             "key.parsed_scope.start" : 342,
@@ -59736,15 +61957,15 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func keyboardFrameWillChange(for observer: KeyboardObserver<\/Type>, animationDuration: Double<\/Type>, options: UIView<\/Type>.AnimationOptions<\/Type>)<\/Declaration>",
             "key.bodylength" : 422,
-            "key.bodyoffset" : 10065,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 10066,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> keyboardFrameWillChange<\/decl.name>(for<\/decl.var.parameter.argument_label> observer<\/decl.var.parameter.name>: KeyboardObserver<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, animationDuration<\/decl.var.parameter.argument_label>: Double<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, options<\/decl.var.parameter.argument_label>: UIView<\/ref.class>.AnimationOptions<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 546,
             "key.name" : "keyboardFrameWillChange(for:animationDuration:options:)",
             "key.namelength" : 116,
-            "key.nameoffset" : 9947,
-            "key.offset" : 9942,
+            "key.nameoffset" : 9948,
+            "key.offset" : 9943,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI24KeyboardObserverDelegateP23keyboardFrameWillChange3for17animationDuration7optionsyAA0cD0C_SdSo22UIViewAnimationOptionsVtF"
@@ -59766,7 +61987,7 @@
             "key.name" : "MARK: List State Observation",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 10508
+            "key.offset" : 10509
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -59775,7 +61996,7 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 10841
+                "key.offset" : 10842
               }
             ],
             "key.doc.column" : 16,
@@ -59786,21 +62007,21 @@
                 "Para" : "See the `ListStateObserver` for more info."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-            "key.doc.full_as_xml" : "stateObserver<\/Name>s:10ListableUI8ListViewC13stateObserverAA0c5StateF0Vvp<\/USR>public var stateObserver: ListStateObserver<\/Declaration>A state observer allows you to receive callbacks when varying types of changes occur within the list’s state, such as scroll events, content change events, frame change events, or item visibility changes.<\/Para><\/Abstract>See the ListStateObserver<\/codeVoice> for more info.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.doc.full_as_xml" : "stateObserver<\/Name>s:10ListableUI8ListViewC13stateObserverAA0c5StateF0Vvp<\/USR>public var stateObserver: ListStateObserver<\/Declaration>A state observer allows you to receive callbacks when varying types of changes occur within the list’s state, such as scroll events, content change events, frame change events, or item visibility changes.<\/Para><\/Abstract>See the ListStateObserver<\/codeVoice> for more info.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 370,
             "key.doc.name" : "stateObserver",
             "key.doc.type" : "Other",
             "key.doclength" : 284,
-            "key.docoffset" : 10553,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.docoffset" : 10554,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> stateObserver<\/decl.name>: ListStateObserver<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 37,
             "key.name" : "stateObserver",
             "key.namelength" : 13,
-            "key.nameoffset" : 10852,
-            "key.offset" : 10848,
+            "key.nameoffset" : 10853,
+            "key.offset" : 10849,
             "key.parsed_declaration" : "public var stateObserver : ListStateObserver",
             "key.parsed_scope.end" : 370,
             "key.parsed_scope.start" : 370,
@@ -59816,29 +62037,29 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 11098
+                "key.offset" : 11099
               }
             ],
             "key.bodylength" : 124,
-            "key.bodyoffset" : 11134,
+            "key.bodyoffset" : 11135,
             "key.doc.column" : 17,
             "key.doc.comment" : "Allows registering a `ListActions` object associated\nwith the list view that allows you to perform actions such as scrolling to\nitems, or controlling view appearance transitions.",
             "key.doc.declaration" : "private var actions: ListActions? { get set }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI8ListViewC7actions33_A65B53D10B0C487915F0C0C4684244E8LLAA0C7ActionsCSgvp<\/USR>private var actions: ListActions? { get set }<\/Declaration>Allows registering a ListActions<\/codeVoice> object associated with the list view that allows you to perform actions such as scrolling to items, or controlling view appearance transitions.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI8ListViewC7actions33_A65B53D10B0C487915F0C0C4684244E8LLAA0C7ActionsCSgvp<\/USR>private var actions: ListActions? { get set }<\/Declaration>Allows registering a ListActions<\/codeVoice> object associated with the list view that allows you to perform actions such as scrolling to items, or controlling view appearance transitions.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 375,
             "key.doc.name" : "actions",
             "key.doc.type" : "Other",
             "key.doclength" : 199,
-            "key.docoffset" : 10895,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.docoffset" : 10896,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> actions<\/decl.name>: ListActions<\/ref.class>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 153,
             "key.name" : "actions",
             "key.namelength" : 7,
-            "key.nameoffset" : 11110,
-            "key.offset" : 11106,
+            "key.nameoffset" : 11111,
+            "key.offset" : 11107,
             "key.parsed_declaration" : "private var actions : ListActions?",
             "key.parsed_scope.end" : 381,
             "key.parsed_scope.start" : 375,
@@ -59853,7 +62074,7 @@
             "key.name" : "MARK: Public - Scrolling To Sections & Items",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 11279
+            "key.offset" : 11280
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -59862,17 +62083,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 11340
+                "key.offset" : 11341
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ListView<\/ref.class>.ScrollCompletion<\/decl.name> = (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 41,
             "key.name" : "ScrollCompletion",
             "key.namelength" : 16,
-            "key.nameoffset" : 11357,
-            "key.offset" : 11347,
+            "key.nameoffset" : 11358,
+            "key.offset" : 11348,
             "key.parsed_declaration" : "public typealias ScrollCompletion = (Bool) -> ()",
             "key.parsed_scope.end" : 387,
             "key.parsed_scope.start" : 387,
@@ -59887,34 +62108,34 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 11603
+                "key.offset" : 11604
               },
               {
                 "key.attribute" : "source.decl.attribute.discardableResult",
                 "key.length" : 18,
-                "key.offset" : 11580
+                "key.offset" : 11581
               }
             ],
             "key.bodylength" : 174,
-            "key.bodyoffset" : 11798,
+            "key.bodyoffset" : 11799,
             "key.doc.column" : 17,
             "key.doc.comment" : "\nScrolls to the provided item, with the provided positioning.\nIf the item is contained in the list, true is returned. If it is not, false is returned.",
             "key.doc.declaration" : "public func scrollTo(item: AnyItem, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-            "key.doc.full_as_xml" : "scrollTo(item:position:animation:completion:)<\/Name>s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0M9AnimationOySbctF<\/USR>public func scrollTo(item: AnyItem, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the provided item, with the provided positioning. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.doc.full_as_xml" : "scrollTo(item:position:animation:completion:)<\/Name>s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0M9AnimationOySbctF<\/USR>public func scrollTo(item: AnyItem, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the provided item, with the provided positioning. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 394,
             "key.doc.name" : "scrollTo(item:position:animation:completion:)",
             "key.doc.type" : "Function",
             "key.doclength" : 178,
-            "key.docoffset" : 11398,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.docoffset" : 11399,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animation<\/decl.var.parameter.argument_label>: ScrollAnimation<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> ScrollCompletion<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 363,
             "key.name" : "scrollTo(item:position:animation:completion:)",
             "key.namelength" : 169,
-            "key.nameoffset" : 11615,
-            "key.offset" : 11610,
+            "key.nameoffset" : 11616,
+            "key.offset" : 11611,
             "key.parsed_declaration" : "public func scrollTo(\n    item : AnyItem, position : ScrollPosition,\n    animation: ScrollAnimation = .none,\n    completion : @escaping ScrollCompletion = { _ in }\n) -> Bool",
             "key.parsed_scope.end" : 406,
             "key.parsed_scope.start" : 394,
@@ -59937,34 +62158,34 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 12304
+                "key.offset" : 12305
               },
               {
                 "key.attribute" : "source.decl.attribute.discardableResult",
                 "key.length" : 18,
-                "key.offset" : 12281
+                "key.offset" : 12282
               }
             ],
             "key.bodylength" : 1097,
-            "key.bodyoffset" : 12513,
+            "key.bodyoffset" : 12514,
             "key.doc.column" : 17,
             "key.doc.comment" : "\nScrolls to the item with the provided identifier, with the provided positioning.\nIf there is more than one item with the same identifier, the list scrolls to the first.\nIf the item is contained in the list, true is returned. If it is not, false is returned.",
             "key.doc.declaration" : "public func scrollTo(item: AnyIdentifier, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-            "key.doc.full_as_xml" : "scrollTo(item:position:animation:completion:)<\/Name>s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0M9AnimationOySbctF<\/USR>public func scrollTo(item: AnyIdentifier, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the item with the provided identifier, with the provided positioning. If there is more than one item with the same identifier, the list scrolls to the first. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.doc.full_as_xml" : "scrollTo(item:position:animation:completion:)<\/Name>s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0M9AnimationOySbctF<\/USR>public func scrollTo(item: AnyIdentifier, position: ScrollPosition, animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the item with the provided identifier, with the provided positioning. If there is more than one item with the same identifier, the list scrolls to the first. If the item is contained in the list, true is returned. If it is not, false is returned.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 414,
             "key.doc.name" : "scrollTo(item:position:animation:completion:)",
             "key.doc.type" : "Function",
             "key.doclength" : 294,
-            "key.docoffset" : 11983,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.docoffset" : 11984,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollTo<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyIdentifier<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, position<\/decl.var.parameter.argument_label>: ScrollPosition<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, animation<\/decl.var.parameter.argument_label>: ScrollAnimation<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> ScrollCompletion<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1300,
             "key.name" : "scrollTo(item:position:animation:completion:)",
             "key.namelength" : 183,
-            "key.nameoffset" : 12316,
-            "key.offset" : 12311,
+            "key.nameoffset" : 12317,
+            "key.offset" : 12312,
             "key.parsed_declaration" : "public func scrollTo(\n    item : AnyIdentifier,\n    position : ScrollPosition,\n    animation: ScrollAnimation = .none,\n    completion : @escaping ScrollCompletion = { _ in }\n) -> Bool",
             "key.parsed_scope.end" : 452,
             "key.parsed_scope.start" : 414,
@@ -59987,48 +62208,48 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 13732
+                "key.offset" : 13733
               },
               {
                 "key.attribute" : "source.decl.attribute.discardableResult",
                 "key.length" : 18,
-                "key.offset" : 13709
+                "key.offset" : 13710
               }
             ],
             "key.bodylength" : 520,
-            "key.bodyoffset" : 13875,
+            "key.bodyoffset" : 13876,
             "key.doc.column" : 17,
             "key.doc.comment" : "Scrolls to the very top of the list, which includes displaying the list header.",
             "key.doc.declaration" : "public func scrollToTop(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-            "key.doc.full_as_xml" : "scrollToTop(animation:completion:)<\/Name>s:10ListableUI8ListViewC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF<\/USR>public func scrollToTop(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the very top of the list, which includes displaying the list header.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.doc.full_as_xml" : "scrollToTop(animation:completion:)<\/Name>s:10ListableUI8ListViewC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF<\/USR>public func scrollToTop(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the very top of the list, which includes displaying the list header.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 456,
             "key.doc.name" : "scrollToTop(animation:completion:)",
             "key.doc.type" : "Function",
             "key.doclength" : 84,
-            "key.docoffset" : 13621,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.docoffset" : 13622,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToTop<\/decl.name>(animation<\/decl.var.parameter.argument_label>: ScrollAnimation<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> ScrollCompletion<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 657,
             "key.name" : "scrollToTop(animation:completion:)",
             "key.namelength" : 121,
-            "key.nameoffset" : 13744,
-            "key.offset" : 13739,
+            "key.nameoffset" : 13745,
+            "key.offset" : 13740,
             "key.parsed_declaration" : "public func scrollToTop(\n    animation: ScrollAnimation = .none,\n    completion : @escaping ScrollCompletion = { _ in }\n) -> Bool",
             "key.parsed_scope.end" : 472,
             "key.parsed_scope.start" : 456,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let rect: CGRect<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> rect<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 71,
                 "key.name" : "rect",
                 "key.namelength" : 4,
-                "key.nameoffset" : 13995,
-                "key.offset" : 13991,
+                "key.nameoffset" : 13996,
+                "key.offset" : 13992,
                 "key.parsed_declaration" : "let rect = CGRect(origin: .zero, size: CGSize(width: 1.0, height: 1.0))",
                 "key.parsed_scope.end" : 462,
                 "key.parsed_scope.start" : 462,
@@ -60048,34 +62269,34 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 14526
+                "key.offset" : 14527
               },
               {
                 "key.attribute" : "source.decl.attribute.discardableResult",
                 "key.length" : 18,
-                "key.offset" : 14503
+                "key.offset" : 14504
               }
             ],
             "key.bodylength" : 1007,
-            "key.bodyoffset" : 14674,
+            "key.bodyoffset" : 14675,
             "key.doc.column" : 17,
             "key.doc.comment" : "Scrolls to the last item in the list. If the list contains no items, no action is performed.",
             "key.doc.declaration" : "public func scrollToLastItem(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-            "key.doc.full_as_xml" : "scrollToLastItem(animation:completion:)<\/Name>s:10ListableUI8ListViewC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF<\/USR>public func scrollToLastItem(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the last item in the list. If the list contains no items, no action is performed.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.doc.full_as_xml" : "scrollToLastItem(animation:completion:)<\/Name>s:10ListableUI8ListViewC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF<\/USR>public func scrollToLastItem(animation: ScrollAnimation = .none, completion: @escaping ScrollCompletion = { _ in }) -> Bool<\/Declaration>Scrolls to the last item in the list. If the list contains no items, no action is performed.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 476,
             "key.doc.name" : "scrollToLastItem(animation:completion:)",
             "key.doc.type" : "Function",
             "key.doclength" : 97,
-            "key.docoffset" : 14402,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.docoffset" : 14403,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> scrollToLastItem<\/decl.name>(animation<\/decl.var.parameter.argument_label>: ScrollAnimation<\/ref.enum><\/decl.var.parameter.type> = .none<\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> ScrollCompletion<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1149,
             "key.name" : "scrollToLastItem(animation:completion:)",
             "key.namelength" : 126,
-            "key.nameoffset" : 14538,
-            "key.offset" : 14533,
+            "key.nameoffset" : 14539,
+            "key.offset" : 14534,
             "key.parsed_declaration" : "public func scrollToLastItem(\n    animation: ScrollAnimation = .none,\n    completion : @escaping ScrollCompletion = { _ in }\n) -> Bool",
             "key.parsed_scope.end" : 507,
             "key.parsed_scope.start" : 476,
@@ -60092,7 +62313,7 @@
             "key.name" : "MARK: Setting & Getting Content",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 15702
+            "key.offset" : 15703
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -60101,19 +62322,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 15750
+                "key.offset" : 15751
               }
             ],
             "key.bodylength" : 91,
-            "key.bodyoffset" : 15792,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 15793,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> environment<\/decl.name>: ListEnvironment<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 127,
             "key.name" : "environment",
             "key.namelength" : 11,
-            "key.nameoffset" : 15761,
-            "key.offset" : 15757,
+            "key.nameoffset" : 15762,
+            "key.offset" : 15758,
             "key.parsed_declaration" : "public var environment : ListEnvironment",
             "key.parsed_scope.end" : 517,
             "key.parsed_scope.start" : 513,
@@ -60129,19 +62350,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 15894
+                "key.offset" : 15895
               }
             ],
             "key.bodylength" : 111,
-            "key.bodyoffset" : 15924,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 15925,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 135,
             "key.name" : "content",
             "key.namelength" : 7,
-            "key.nameoffset" : 15905,
-            "key.offset" : 15901,
+            "key.nameoffset" : 15906,
+            "key.offset" : 15902,
             "key.parsed_declaration" : "public var content : Content",
             "key.parsed_scope.end" : 522,
             "key.parsed_scope.start" : 519,
@@ -60157,19 +62378,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 16046
+                "key.offset" : 16047
               }
             ],
             "key.bodylength" : 156,
-            "key.bodyoffset" : 16120,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 16121,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setContent<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 224,
             "key.name" : "setContent(animated:_:)",
             "key.namelength" : 56,
-            "key.nameoffset" : 16058,
-            "key.offset" : 16053,
+            "key.nameoffset" : 16059,
+            "key.offset" : 16054,
             "key.parsed_declaration" : "public func setContent(animated : Bool = false, _ content : Content)",
             "key.parsed_scope.end" : 531,
             "key.parsed_scope.start" : 524,
@@ -60187,17 +62408,17 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 16287
+                "key.offset" : 16288
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sourceChangedTimer<\/decl.name>: ReloadTimer<\/ref.class>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 43,
             "key.name" : "sourceChangedTimer",
             "key.namelength" : 18,
-            "key.nameoffset" : 16299,
-            "key.offset" : 16295,
+            "key.nameoffset" : 16300,
+            "key.offset" : 16296,
             "key.parsed_declaration" : "private var sourceChangedTimer : ReloadTimer? = nil",
             "key.parsed_scope.end" : 533,
             "key.parsed_scope.start" : 533,
@@ -60213,24 +62434,24 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 16371
+                "key.offset" : 16372
               },
               {
                 "key.attribute" : "source.decl.attribute.discardableResult",
                 "key.length" : 18,
-                "key.offset" : 16348
+                "key.offset" : 16349
               }
             ],
             "key.bodylength" : 736,
-            "key.bodyoffset" : 16512,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 16513,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "@discardableResult<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name><Source<\/decl.generic_type_param.name><\/decl.generic_type_param>>(source<\/decl.var.parameter.argument_label>: Source<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, initial<\/decl.var.parameter.argument_label>: Source<\/ref.generic_type_param>.State<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>) -> StateAccessor<\/ref.class><Source<\/ref.generic_type_param>.State<\/ref.associatedtype>><\/decl.function.returntype> where<\/syntaxtype.keyword> Source : ListViewSource<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 871,
             "key.name" : "set(source:initial:animated:)",
             "key.namelength" : 92,
-            "key.nameoffset" : 16383,
-            "key.offset" : 16378,
+            "key.nameoffset" : 16384,
+            "key.offset" : 16379,
             "key.parsed_declaration" : "public func set(source : Source, initial : Source.State, animated : Bool = false) -> StateAccessor",
             "key.parsed_scope.end" : 559,
             "key.parsed_scope.start" : 536,
@@ -60246,10 +62467,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 14,
-                    "key.offset" : 16394
+                    "key.offset" : 16395
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "Source<\/decl.generic_type_param.name> : ListViewSource<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -60260,8 +62481,8 @@
                 "key.length" : 21,
                 "key.name" : "Source",
                 "key.namelength" : 6,
-                "key.nameoffset" : 16387,
-                "key.offset" : 16387,
+                "key.nameoffset" : 16388,
+                "key.offset" : 16388,
                 "key.parsed_declaration" : "public func setlet sourcePresenter: SourcePresenter<\/Type><Source><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sourcePresenter<\/decl.name>: SourcePresenter<\/ref.class><Source><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 408,
                 "key.name" : "sourcePresenter",
                 "key.namelength" : 15,
-                "key.nameoffset" : 16573,
-                "key.offset" : 16569,
+                "key.nameoffset" : 16574,
+                "key.offset" : 16570,
                 "key.parsed_declaration" : "let sourcePresenter = SourcePresenter(initial: initial, source: source, didChange: { [weak self] in\n    guard let self = self else { return }\n    guard self.sourceChangedTimer == nil else { return }\n    \n    self.sourceChangedTimer = ReloadTimer {\n        self.sourceChangedTimer = nil\n        self.setContentFromSource(animated: true)\n    }\n})",
                 "key.parsed_scope.end" : 540,
                 "key.parsed_scope.start" : 540,
@@ -60303,19 +62524,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 17259
+                "key.offset" : 17260
               }
             ],
             "key.bodylength" : 538,
-            "key.bodyoffset" : 17323,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 17324,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> configure<\/decl.name>(with<\/decl.var.parameter.argument_label> builder<\/decl.var.parameter.name>: ListProperties<\/ref.struct>.Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 596,
             "key.name" : "configure(with:)",
             "key.namelength" : 46,
-            "key.nameoffset" : 17271,
-            "key.offset" : 17266,
+            "key.nameoffset" : 17272,
+            "key.offset" : 17267,
             "key.parsed_declaration" : "public func configure(with builder : ListProperties.Build)",
             "key.parsed_scope.end" : 576,
             "key.parsed_scope.start" : 561,
@@ -60327,14 +62548,14 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let description: ListProperties<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> description<\/decl.name>: ListProperties<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 473,
                 "key.name" : "description",
                 "key.namelength" : 11,
-                "key.nameoffset" : 17336,
-                "key.offset" : 17332,
+                "key.nameoffset" : 17337,
+                "key.offset" : 17333,
                 "key.parsed_declaration" : "let description = ListProperties(\n    animatesChanges: true,\n    layout: self.layout,\n    appearance: self.appearance,\n    scrollIndicatorInsets: self.scrollIndicatorInsets,\n    behavior: self.behavior,\n    autoScrollAction: self.autoScrollAction,\n    accessibilityIdentifier: self.collectionView.accessibilityIdentifier,\n    debuggingIdentifier: self.debuggingIdentifier,\n    build: builder\n)",
                 "key.parsed_scope.end" : 563,
                 "key.parsed_scope.start" : 563,
@@ -60362,19 +62583,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 17872
+                "key.offset" : 17873
               }
             ],
             "key.bodylength" : 743,
-            "key.bodyoffset" : 17933,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 17934,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> configure<\/decl.name>(with<\/decl.var.parameter.argument_label> properties<\/decl.var.parameter.name>: ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 798,
             "key.name" : "configure(with:)",
             "key.namelength" : 43,
-            "key.nameoffset" : 17884,
-            "key.offset" : 17879,
+            "key.nameoffset" : 17885,
+            "key.offset" : 17880,
             "key.parsed_declaration" : "public func configure(with properties : ListProperties)",
             "key.parsed_scope.end" : 597,
             "key.parsed_scope.start" : 578,
@@ -60386,14 +62607,14 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let animated: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> animated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 41,
                 "key.name" : "animated",
                 "key.namelength" : 8,
-                "key.nameoffset" : 17946,
-                "key.offset" : 17942,
+                "key.nameoffset" : 17947,
+                "key.offset" : 17943,
                 "key.parsed_declaration" : "let animated = properties.animatesChanges",
                 "key.parsed_scope.end" : 580,
                 "key.parsed_scope.start" : 580,
@@ -60413,33 +62634,33 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 18687
+                "key.offset" : 18688
               }
             ],
             "key.bodylength" : 400,
-            "key.bodyoffset" : 18751,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 18752,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setContentFromSource<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 457,
             "key.name" : "setContentFromSource(animated:)",
             "key.namelength" : 45,
-            "key.nameoffset" : 18700,
-            "key.offset" : 18695,
+            "key.nameoffset" : 18701,
+            "key.offset" : 18696,
             "key.parsed_declaration" : "private func setContentFromSource(animated : Bool = false)",
             "key.parsed_scope.end" : 608,
             "key.parsed_scope.start" : 599,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let oldIdentifier: AnyHashable<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldIdentifier<\/decl.name>: AnyHashable<\/ref.struct>?<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 54,
                 "key.name" : "oldIdentifier",
                 "key.namelength" : 13,
-                "key.nameoffset" : 18764,
-                "key.offset" : 18760,
+                "key.nameoffset" : 18765,
+                "key.offset" : 18761,
                 "key.parsed_declaration" : "let oldIdentifier = self.storage.allContent.identifier",
                 "key.parsed_scope.end" : 601,
                 "key.parsed_scope.start" : 601,
@@ -60449,14 +62670,14 @@
               },
               {
                 "key.annotated_decl" : "let newIdentifier: AnyHashable<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newIdentifier<\/decl.name>: AnyHashable<\/ref.struct>?<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 54,
                 "key.name" : "newIdentifier",
                 "key.namelength" : 13,
-                "key.nameoffset" : 18898,
-                "key.offset" : 18894,
+                "key.nameoffset" : 18899,
+                "key.offset" : 18895,
                 "key.parsed_declaration" : "let newIdentifier = self.storage.allContent.identifier",
                 "key.parsed_scope.end" : 603,
                 "key.parsed_scope.start" : 603,
@@ -60466,14 +62687,14 @@
               },
               {
                 "key.annotated_decl" : "let identifierChanged: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> identifierChanged<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 54,
                 "key.name" : "identifierChanged",
                 "key.namelength" : 17,
-                "key.nameoffset" : 18970,
-                "key.offset" : 18966,
+                "key.nameoffset" : 18971,
+                "key.offset" : 18967,
                 "key.parsed_declaration" : "let identifierChanged = oldIdentifier != newIdentifier",
                 "key.parsed_scope.end" : 605,
                 "key.parsed_scope.start" : 605,
@@ -60492,7 +62713,7 @@
             "key.name" : "MARK: UIView",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 19172
+            "key.offset" : 19173
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -60500,28 +62721,28 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 19349
+                "key.offset" : 19350
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 19342
+                "key.offset" : 19343
               },
               {
                 "key.attribute" : "source.decl.attribute.available",
                 "key.length" : 136,
-                "key.offset" : 19201
+                "key.offset" : 19202
               }
             ],
             "key.bodylength" : 38,
-            "key.bodyoffset" : 19403,
+            "key.bodyoffset" : 19404,
             "key.internal_diagnostic" : "Unavailable in the current compilation context.",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 84,
             "key.name" : "sizeThatFits(_:)",
             "key.namelength" : 28,
-            "key.nameoffset" : 19363,
-            "key.offset" : 19358,
+            "key.nameoffset" : 19364,
+            "key.offset" : 19359,
             "key.substructure" : [
 
             ],
@@ -60533,28 +62754,28 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 19608
+                "key.offset" : 19609
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 19601
+                "key.offset" : 19602
               },
               {
                 "key.attribute" : "source.decl.attribute.available",
                 "key.length" : 144,
-                "key.offset" : 19452
+                "key.offset" : 19453
               }
             ],
             "key.bodylength" : 40,
-            "key.bodyoffset" : 19651,
+            "key.bodyoffset" : 19652,
             "key.internal_diagnostic" : "Unavailable in the current compilation context.",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 75,
             "key.name" : "intrinsicContentSize",
             "key.namelength" : 20,
-            "key.nameoffset" : 19621,
-            "key.offset" : 19617,
+            "key.nameoffset" : 19622,
+            "key.offset" : 19618,
             "key.typename" : "CGSize"
           },
           {
@@ -60564,24 +62785,24 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 19709
+                "key.offset" : 19710
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 19702
+                "key.offset" : 19703
               }
             ],
             "key.bodylength" : 96,
-            "key.bodyoffset" : 19737,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 19738,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> frame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 116,
             "key.name" : "frame",
             "key.namelength" : 5,
-            "key.nameoffset" : 19722,
-            "key.offset" : 19718,
+            "key.nameoffset" : 19723,
+            "key.offset" : 19719,
             "key.overrides" : [
               {
                 "key.usr" : "c:objc(cs)UIView(py)frame"
@@ -60607,24 +62828,24 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 19851
+                "key.offset" : 19852
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 19844
+                "key.offset" : 19845
               }
             ],
             "key.bodylength" : 231,
-            "key.bodyoffset" : 19880,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 19881,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> bounds<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 252,
             "key.name" : "bounds",
             "key.namelength" : 6,
-            "key.nameoffset" : 19864,
-            "key.offset" : 19860,
+            "key.nameoffset" : 19865,
+            "key.offset" : 19861,
             "key.overrides" : [
               {
                 "key.usr" : "c:objc(cs)UIView(py)bounds"
@@ -60640,14 +62861,14 @@
           },
           {
             "key.annotated_decl" : "let oldValue: CGRect<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldValue<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type><\/decl.var.local>",
             "key.kind" : "source.lang.swift.decl.var.local",
             "key.length" : 25,
             "key.name" : "oldValue",
             "key.namelength" : 8,
-            "key.nameoffset" : 19949,
-            "key.offset" : 19945,
+            "key.nameoffset" : 19950,
+            "key.offset" : 19946,
             "key.parsed_declaration" : "let oldValue = self.frame",
             "key.parsed_scope.end" : 634,
             "key.parsed_scope.start" : 634,
@@ -60662,19 +62883,19 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 20122
+                "key.offset" : 20123
               }
             ],
             "key.bodylength" : 1401,
-            "key.bodyoffset" : 20187,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 20188,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> frameDidChange<\/decl.name>(from<\/decl.var.parameter.argument_label> old<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, to<\/decl.var.parameter.argument_label> new<\/decl.var.parameter.name>: CGRect<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1459,
             "key.name" : "frameDidChange(from:to:)",
             "key.namelength" : 50,
-            "key.nameoffset" : 20135,
-            "key.offset" : 20130,
+            "key.nameoffset" : 20136,
+            "key.offset" : 20131,
             "key.parsed_declaration" : "private func frameDidChange(from old : CGRect, to new : CGRect)",
             "key.parsed_scope.end" : 676,
             "key.parsed_scope.start" : 642,
@@ -60689,21 +62910,21 @@
                     "Para" : "There’s no value in having content with no view size, as we cannot size cells otherwise."
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-                "key.doc.full_as_xml" : "fromEmpty<\/Name>s:10ListableUI8ListViewC14frameDidChange33_A65B53D10B0C487915F0C0C4684244E8LL4from2toySo6CGRectV_AItF0Q5EmptyL_Sbvp<\/USR>let fromEmpty: Bool<\/Declaration>Once the view actually has a size, we can provide content.<\/Para><\/Abstract>There’s no value in having content with no view size, as we cannot size cells otherwise.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.doc.full_as_xml" : "fromEmpty<\/Name>s:10ListableUI8ListViewC14frameDidChange33_A65B53D10B0C487915F0C0C4684244E8LL4from2toySo6CGRectV_AItF0Q5EmptyL_Sbvp<\/USR>let fromEmpty: Bool<\/Declaration>Once the view actually has a size, we can provide content.<\/Para><\/Abstract>There’s no value in having content with no view size, as we cannot size cells otherwise.<\/Para><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 656,
                 "key.doc.name" : "fromEmpty",
                 "key.doc.type" : "Other",
                 "key.doclength" : 176,
-                "key.docoffset" : 20556,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.docoffset" : 20557,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> fromEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 61,
                 "key.name" : "fromEmpty",
                 "key.namelength" : 9,
-                "key.nameoffset" : 20744,
-                "key.offset" : 20740,
+                "key.nameoffset" : 20745,
+                "key.offset" : 20741,
                 "key.parsed_declaration" : "let fromEmpty = old.size.isEmpty && new.size.isEmpty == false",
                 "key.parsed_scope.end" : 656,
                 "key.parsed_scope.start" : 656,
@@ -60713,14 +62934,14 @@
               },
               {
                 "key.annotated_decl" : "let toEmpty: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> toEmpty<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 59,
                 "key.name" : "toEmpty",
                 "key.namelength" : 7,
-                "key.nameoffset" : 20814,
-                "key.offset" : 20810,
+                "key.nameoffset" : 20815,
+                "key.offset" : 20811,
                 "key.parsed_declaration" : "let toEmpty = old.size.isEmpty == false && new.size.isEmpty",
                 "key.parsed_scope.end" : 657,
                 "key.parsed_scope.start" : 657,
@@ -60740,25 +62961,25 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 21606
+                "key.offset" : 21607
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 21599
+                "key.offset" : 21600
               }
             ],
             "key.bodylength" : 103,
-            "key.bodyoffset" : 21646,
+            "key.bodyoffset" : 21647,
             "key.doc.comment" : "Our frame changed, update the keyboard inset in case the inset should now be different.",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> backgroundColor<\/decl.name>: UIColor<\/ref.class>?<\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 135,
             "key.name" : "backgroundColor",
             "key.namelength" : 15,
-            "key.nameoffset" : 21619,
-            "key.offset" : 21615,
+            "key.nameoffset" : 21620,
+            "key.offset" : 21616,
             "key.overrides" : [
               {
                 "key.usr" : "c:objc(cs)UIView(py)backgroundColor"
@@ -60779,24 +63000,24 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 21767
+                "key.offset" : 21768
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 21760
+                "key.offset" : 21761
               }
             ],
             "key.bodylength" : 130,
-            "key.bodyoffset" : 21804,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 21805,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> didMoveToWindow<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 159,
             "key.name" : "didMoveToWindow()",
             "key.namelength" : 17,
-            "key.nameoffset" : 21781,
-            "key.offset" : 21776,
+            "key.nameoffset" : 21782,
+            "key.offset" : 21777,
             "key.overrides" : [
               {
                 "key.usr" : "c:objc(cs)UIView(im)didMoveToWindow"
@@ -60819,24 +63040,24 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 21952
+                "key.offset" : 21953
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 21945
+                "key.offset" : 21946
               }
             ],
             "key.bodylength" : 136,
-            "key.bodyoffset" : 21992,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 21993,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> didMoveToSuperview<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 168,
             "key.name" : "didMoveToSuperview()",
             "key.namelength" : 20,
-            "key.nameoffset" : 21966,
-            "key.offset" : 21961,
+            "key.nameoffset" : 21967,
+            "key.offset" : 21962,
             "key.overrides" : [
               {
                 "key.usr" : "c:objc(cs)UIView(im)didMoveToSuperview"
@@ -60859,24 +63080,24 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 22148
+                "key.offset" : 22149
               },
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 22139
+                "key.offset" : 22140
               }
             ],
             "key.bodylength" : 241,
-            "key.bodyoffset" : 22182,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 22183,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 269,
             "key.name" : "layoutSubviews()",
             "key.namelength" : 16,
-            "key.nameoffset" : 22160,
-            "key.offset" : 22155,
+            "key.nameoffset" : 22161,
+            "key.offset" : 22156,
             "key.overrides" : [
               {
                 "key.usr" : "c:objc(cs)UIView(im)layoutSubviews"
@@ -60898,7 +63119,7 @@
             "key.name" : "MARK: Internal - Updating Content",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 22444
+            "key.offset" : 22445
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
@@ -60907,20 +63128,20 @@
               {
                 "key.attribute" : "source.decl.attribute.internal",
                 "key.length" : 8,
-                "key.offset" : 22494
+                "key.offset" : 22495
               }
             ],
             "key.bodylength" : 176,
-            "key.bodyoffset" : 22549,
+            "key.bodyoffset" : 22550,
             "key.doc.comment" : "Our layout changed, update the keyboard inset in case the inset should now be different.",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> setPresentationStateItemPositions<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 223,
             "key.name" : "setPresentationStateItemPositions()",
             "key.namelength" : 35,
-            "key.nameoffset" : 22508,
-            "key.offset" : 22503,
+            "key.nameoffset" : 22509,
+            "key.offset" : 22504,
             "key.parsed_declaration" : "internal func setPresentationStateItemPositions()",
             "key.parsed_scope.end" : 721,
             "key.parsed_scope.start" : 716,
@@ -60938,33 +63159,33 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 22736
+                "key.offset" : 22737
               }
             ],
             "key.bodylength" : 854,
-            "key.bodyoffset" : 22802,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 22803,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateCollectionViewSelections<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 913,
             "key.name" : "updateCollectionViewSelections(animated:)",
             "key.namelength" : 47,
-            "key.nameoffset" : 22749,
-            "key.offset" : 22744,
+            "key.nameoffset" : 22750,
+            "key.offset" : 22745,
             "key.parsed_declaration" : "private func updateCollectionViewSelections(animated : Bool)",
             "key.parsed_scope.end" : 745,
             "key.parsed_scope.start" : 723,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let oldSelected: Set<\/Type><IndexPath<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> oldSelected<\/decl.name>: Set<\/ref.struct><IndexPath<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 92,
                 "key.name" : "oldSelected",
                 "key.namelength" : 11,
-                "key.nameoffset" : 22815,
-                "key.offset" : 22811,
+                "key.nameoffset" : 22816,
+                "key.offset" : 22812,
                 "key.parsed_declaration" : "let oldSelected : Set = Set(self.collectionView.indexPathsForSelectedItems ?? [])",
                 "key.parsed_scope.end" : 725,
                 "key.parsed_scope.start" : 725,
@@ -60974,14 +63195,14 @@
               },
               {
                 "key.annotated_decl" : "let newSelected: Set<\/Type><IndexPath<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> newSelected<\/decl.name>: Set<\/ref.struct><IndexPath<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 89,
                 "key.name" : "newSelected",
                 "key.namelength" : 11,
-                "key.nameoffset" : 22916,
-                "key.offset" : 22912,
+                "key.nameoffset" : 22917,
+                "key.offset" : 22913,
                 "key.parsed_declaration" : "let newSelected : Set = Set(self.storage.presentationState.selectedIndexPaths)",
                 "key.parsed_scope.end" : 726,
                 "key.parsed_scope.start" : 726,
@@ -60991,14 +63212,14 @@
               },
               {
                 "key.annotated_decl" : "let removed: Set<\/Type><IndexPath<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> removed<\/decl.name>: Set<\/ref.struct><IndexPath<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 50,
                 "key.name" : "removed",
                 "key.namelength" : 7,
-                "key.nameoffset" : 23023,
-                "key.offset" : 23019,
+                "key.nameoffset" : 23024,
+                "key.offset" : 23020,
                 "key.parsed_declaration" : "let removed = oldSelected.subtracting(newSelected)",
                 "key.parsed_scope.end" : 728,
                 "key.parsed_scope.start" : 728,
@@ -61008,14 +63229,14 @@
               },
               {
                 "key.annotated_decl" : "let added: Set<\/Type><IndexPath<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> added<\/decl.name>: Set<\/ref.struct><IndexPath<\/ref.struct>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 48,
                 "key.name" : "added",
                 "key.namelength" : 5,
-                "key.nameoffset" : 23082,
-                "key.offset" : 23078,
+                "key.nameoffset" : 23083,
+                "key.offset" : 23079,
                 "key.parsed_declaration" : "let added = newSelected.subtracting(oldSelected)",
                 "key.parsed_scope.end" : 729,
                 "key.parsed_scope.start" : 729,
@@ -61025,14 +63246,14 @@
               },
               {
                 "key.annotated_decl" : "let view: ListView<\/Type>.CollectionView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: ListView<\/ref.class>.CollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 30,
                 "key.name" : "view",
                 "key.namelength" : 4,
-                "key.nameoffset" : 23148,
-                "key.offset" : 23144,
+                "key.nameoffset" : 23149,
+                "key.offset" : 23145,
                 "key.parsed_declaration" : "let view = self.collectionView",
                 "key.parsed_scope.end" : 731,
                 "key.parsed_scope.start" : 731,
@@ -61042,14 +63263,14 @@
               },
               {
                 "key.annotated_decl" : "let state: PresentationState<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> state<\/decl.name>: PresentationState<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 42,
                 "key.name" : "state",
                 "key.namelength" : 5,
-                "key.nameoffset" : 23187,
-                "key.offset" : 23183,
+                "key.nameoffset" : 23188,
+                "key.offset" : 23184,
                 "key.parsed_declaration" : "let state = self.storage.presentationState",
                 "key.parsed_scope.end" : 732,
                 "key.parsed_scope.start" : 732,
@@ -61068,7 +63289,7 @@
             "key.name" : "MARK: Internal - Updating Presentation State",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 23677
+            "key.offset" : 23678
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
@@ -61077,33 +63298,33 @@
               {
                 "key.attribute" : "source.decl.attribute.internal",
                 "key.length" : 8,
-                "key.offset" : 23738
+                "key.offset" : 23739
               }
             ],
             "key.bodylength" : 2020,
-            "key.bodyoffset" : 23909,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 23910,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updatePresentationState<\/decl.name>(for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: PresentationState<\/ref.class>.UpdateReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label> callerCompletion<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 2183,
             "key.name" : "updatePresentationState(for:completion:)",
             "key.namelength" : 155,
-            "key.nameoffset" : 23752,
-            "key.offset" : 23747,
+            "key.nameoffset" : 23753,
+            "key.offset" : 23748,
             "key.parsed_declaration" : "internal func updatePresentationState(\n    for reason : PresentationState.UpdateReason,\n    completion callerCompletion : @escaping (Bool) -> () = { _ in }\n)",
             "key.parsed_scope.end" : 801,
             "key.parsed_scope.start" : 751,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let completion: (Bool<\/Type>) -> ()<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> completion<\/decl.name>: (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 180,
                 "key.name" : "completion",
                 "key.namelength" : 10,
-                "key.nameoffset" : 24019,
-                "key.offset" : 24015,
+                "key.nameoffset" : 24020,
+                "key.offset" : 24016,
                 "key.parsed_declaration" : "let completion = { (completed : Bool) in\n    callerCompletion(completed)\n    SignpostLogger.log(.end, log: .updateContent, name: \"List Update\", for: self)\n}",
                 "key.parsed_scope.end" : 757,
                 "key.parsed_scope.start" : 757,
@@ -61113,14 +63334,14 @@
               },
               {
                 "key.annotated_decl" : "let indexPaths: [IndexPath<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPaths<\/decl.name>: [IndexPath<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 62,
                 "key.name" : "indexPaths",
                 "key.namelength" : 10,
-                "key.nameoffset" : 24217,
-                "key.offset" : 24213,
+                "key.nameoffset" : 24218,
+                "key.offset" : 24214,
                 "key.parsed_declaration" : "let indexPaths = self.collectionView.indexPathsForVisibleItems",
                 "key.parsed_scope.end" : 762,
                 "key.parsed_scope.start" : 762,
@@ -61130,14 +63351,14 @@
               },
               {
                 "key.annotated_decl" : "let indexPath: IndexPath<\/Type>?<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct>?<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 32,
                 "key.name" : "indexPath",
                 "key.namelength" : 9,
-                "key.nameoffset" : 24297,
-                "key.offset" : 24293,
+                "key.nameoffset" : 24298,
+                "key.offset" : 24294,
                 "key.parsed_declaration" : "let indexPath = indexPaths.first",
                 "key.parsed_scope.end" : 764,
                 "key.parsed_scope.start" : 764,
@@ -61147,14 +63368,14 @@
               },
               {
                 "key.annotated_decl" : "let presentationStateTruncated: Bool<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationStateTruncated<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 89,
                 "key.name" : "presentationStateTruncated",
                 "key.namelength" : 26,
-                "key.nameoffset" : 24347,
-                "key.offset" : 24343,
+                "key.nameoffset" : 24348,
+                "key.offset" : 24344,
                 "key.parsed_declaration" : "let presentationStateTruncated = self.storage.presentationState.containsAllItems == false",
                 "key.parsed_scope.end" : 766,
                 "key.parsed_scope.start" : 766,
@@ -61174,33 +63395,33 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 25944
+                "key.offset" : 25945
               }
             ],
-            "key.bodylength" : 2626,
-            "key.bodyoffset" : 26160,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodylength" : 2688,
+            "key.bodyoffset" : 26161,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updatePresentationStateWith<\/decl.name>(firstVisibleIndexPath<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, for<\/decl.var.parameter.argument_label> reason<\/decl.var.parameter.name>: PresentationState<\/ref.class>.UpdateReason<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label> callerCompletion<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 2835,
+            "key.length" : 2897,
             "key.name" : "updatePresentationStateWith(firstVisibleIndexPath:for:completion:)",
             "key.namelength" : 201,
-            "key.nameoffset" : 25957,
-            "key.offset" : 25952,
+            "key.nameoffset" : 25958,
+            "key.offset" : 25953,
             "key.parsed_declaration" : "private func updatePresentationStateWith(\n    firstVisibleIndexPath indexPath: IndexPath?,\n    for reason : PresentationState.UpdateReason,\n    completion callerCompletion : @escaping (Bool) -> ()\n)",
-            "key.parsed_scope.end" : 878,
+            "key.parsed_scope.end" : 879,
             "key.parsed_scope.start" : 803,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let presentationState: PresentationState<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationState<\/decl.name>: PresentationState<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 54,
                 "key.name" : "presentationState",
                 "key.namelength" : 17,
-                "key.nameoffset" : 26221,
-                "key.offset" : 26217,
+                "key.nameoffset" : 26222,
+                "key.offset" : 26218,
                 "key.parsed_declaration" : "let presentationState = self.storage.presentationState",
                 "key.parsed_scope.end" : 810,
                 "key.parsed_scope.start" : 810,
@@ -61210,14 +63431,14 @@
               },
               {
                 "key.annotated_decl" : "let indexPath: IndexPath<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 59,
                 "key.name" : "indexPath",
                 "key.namelength" : 9,
-                "key.nameoffset" : 26293,
-                "key.offset" : 26289,
+                "key.nameoffset" : 26294,
+                "key.offset" : 26290,
                 "key.parsed_declaration" : "let indexPath = indexPath ?? IndexPath(item: 0, section: 0)",
                 "key.parsed_scope.end" : 812,
                 "key.parsed_scope.start" : 812,
@@ -61227,14 +63448,14 @@
               },
               {
                 "key.annotated_decl" : "let visibleSlice: Content<\/Type>.Slice<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> visibleSlice<\/decl.name>: Content<\/ref.struct>.Slice<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 54,
                 "key.name" : "visibleSlice",
                 "key.namelength" : 12,
-                "key.nameoffset" : 26362,
-                "key.offset" : 26358,
+                "key.nameoffset" : 26363,
+                "key.offset" : 26359,
                 "key.parsed_declaration" : "let visibleSlice = self.newVisibleSlice(to: indexPath)",
                 "key.parsed_scope.end" : 814,
                 "key.parsed_scope.start" : 814,
@@ -61244,14 +63465,14 @@
               },
               {
                 "key.annotated_decl" : "let diff: SectionedDiff<\/Type><Section<\/Type>, AnyIdentifier<\/Type>, AnyItem<\/Type>, AnyIdentifier<\/Type>><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> diff<\/decl.name>: SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 199,
                 "key.name" : "diff",
                 "key.namelength" : 4,
-                "key.nameoffset" : 26426,
-                "key.offset" : 26422,
+                "key.nameoffset" : 26427,
+                "key.offset" : 26423,
                 "key.parsed_declaration" : "let diff = SignpostLogger.log(log: .updateContent, name: \"Diff Content\", for: self) {\n    ListView.diffWith(old: presentationState.sectionModels, new: visibleSlice.content.sections)\n}",
                 "key.parsed_scope.end" : 816,
                 "key.parsed_scope.start" : 816,
@@ -61261,14 +63482,14 @@
               },
               {
                 "key.annotated_decl" : "let updateCallbacks: UpdateCallbacks<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> updateCallbacks<\/decl.name>: UpdateCallbacks<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 45,
                 "key.name" : "updateCallbacks",
                 "key.namelength" : 15,
-                "key.nameoffset" : 26635,
-                "key.offset" : 26631,
+                "key.nameoffset" : 26636,
+                "key.offset" : 26632,
                 "key.parsed_declaration" : "let updateCallbacks = UpdateCallbacks(.queue)",
                 "key.parsed_scope.end" : 820,
                 "key.parsed_scope.start" : 820,
@@ -61278,14 +63499,14 @@
               },
               {
                 "key.annotated_decl" : "let updateBackingData: () -> ()<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> updateBackingData<\/decl.name>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 527,
                 "key.name" : "updateBackingData",
                 "key.namelength" : 17,
-                "key.nameoffset" : 26698,
-                "key.offset" : 26694,
+                "key.nameoffset" : 26699,
+                "key.offset" : 26695,
                 "key.parsed_declaration" : "let updateBackingData = {\n    let dependencies = ItemStateDependencies(\n        reorderingDelegate: self,\n        coordinatorDelegate: self,\n        environmentProvider: { [weak self] in self?.environment ?? .empty }\n    )\n    \n    presentationState.update(\n        with: diff,\n        slice: visibleSlice,\n        dependencies: dependencies,\n        updateCallbacks: updateCallbacks,\n        loggable: self\n    )\n}",
                 "key.parsed_scope.end" : 822,
                 "key.parsed_scope.start" : 822,
@@ -61305,23 +63526,23 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 28797
+                "key.offset" : 28860
               }
             ],
             "key.bodylength" : 648,
-            "key.bodyoffset" : 28874,
+            "key.bodyoffset" : 28937,
             "key.doc.comment" : "Update Refresh Control\n\nNote: Must be called *OUTSIDE* of CollectionView's `performBatchUpdates:`, otherwise\nwe trigger a bug where updated indexes are calculated incorrectly.",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> newVisibleSlice<\/decl.name>(to<\/decl.var.parameter.argument_label> indexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Content<\/ref.struct>.Slice<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 718,
             "key.name" : "newVisibleSlice(to:)",
             "key.namelength" : 41,
-            "key.nameoffset" : 28810,
-            "key.offset" : 28805,
+            "key.nameoffset" : 28873,
+            "key.offset" : 28868,
             "key.parsed_declaration" : "private func newVisibleSlice(to indexPath : IndexPath) -> Content.Slice",
-            "key.parsed_scope.end" : 899,
-            "key.parsed_scope.start" : 880,
+            "key.parsed_scope.end" : 900,
+            "key.parsed_scope.start" : 881,
             "key.substructure" : [
 
             ],
@@ -61336,42 +63557,42 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 29533
+                "key.offset" : 29596
               }
             ],
             "key.bodylength" : 826,
-            "key.bodyoffset" : 29630,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 29693,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performAutoScrollAction<\/decl.name>(with<\/decl.var.parameter.argument_label> addedItems<\/decl.var.parameter.name>: Set<\/ref.struct><AnyIdentifier<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 916,
             "key.name" : "performAutoScrollAction(with:animated:)",
             "key.namelength" : 78,
-            "key.nameoffset" : 29546,
-            "key.offset" : 29541,
+            "key.nameoffset" : 29609,
+            "key.offset" : 29604,
             "key.parsed_declaration" : "private func performAutoScrollAction(with addedItems : Set, animated : Bool)",
-            "key.parsed_scope.end" : 922,
-            "key.parsed_scope.start" : 901,
+            "key.parsed_scope.end" : 923,
+            "key.parsed_scope.start" : 902,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let animation: ScrollAnimation<\/Type><\/Declaration>",
                 "key.doc.column" : 21,
                 "key.doc.comment" : "Only animate the scroll if both the update **and** the scroll action are animated.",
                 "key.doc.declaration" : "let animation: ListableUI.ScrollAnimation",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-                "key.doc.full_as_xml" : "animation<\/Name>s:10ListableUI8ListViewC23performAutoScrollAction33_A65B53D10B0C487915F0C0C4684244E8LL4with8animatedyShyAA13AnyIdentifierCG_SbtF9animationL_AA0G9AnimationOvp<\/USR>let animation: ListableUI.ScrollAnimation<\/Declaration>Only animate the scroll if both the update and<\/bold> the scroll action are animated.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 913,
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.doc.full_as_xml" : "animation<\/Name>s:10ListableUI8ListViewC23performAutoScrollAction33_A65B53D10B0C487915F0C0C4684244E8LL4with8animatedyShyAA13AnyIdentifierCG_SbtF9animationL_AA0G9AnimationOvp<\/USR>let animation: ListableUI.ScrollAnimation<\/Declaration>Only animate the scroll if both the update and<\/bold> the scroll action are animated.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.line" : 914,
                 "key.doc.name" : "animation",
                 "key.doc.type" : "Other",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> animation<\/decl.name>: ScrollAnimation<\/ref.enum><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 9,
                 "key.name" : "animation",
-                "key.offset" : 30064,
+                "key.offset" : 30127,
                 "key.parsed_declaration" : "let animation",
-                "key.parsed_scope.end" : 913,
-                "key.parsed_scope.start" : 913,
+                "key.parsed_scope.end" : 914,
+                "key.parsed_scope.start" : 914,
                 "key.typename" : "ScrollAnimation",
                 "key.typeusr" : "$s10ListableUI15ScrollAnimationOD",
                 "key.usr" : "s:10ListableUI8ListViewC23performAutoScrollAction33_A65B53D10B0C487915F0C0C4684244E8LL4with8animatedyShyAA13AnyIdentifierCG_SbtF9animationL_AA0G9AnimationOvp"
@@ -61388,22 +63609,22 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 30463
+                "key.offset" : 30526
               }
             ],
             "key.bodylength" : 499,
-            "key.bodyoffset" : 30576,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 30639,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> preparePresentationStateForScroll<\/decl.name>(to<\/decl.var.parameter.argument_label> toIndexPath<\/decl.var.parameter.name>: IndexPath<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, scroll<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 605,
             "key.name" : "preparePresentationStateForScroll(to:scroll:)",
             "key.namelength" : 90,
-            "key.nameoffset" : 30476,
-            "key.offset" : 30471,
+            "key.nameoffset" : 30539,
+            "key.offset" : 30534,
             "key.parsed_declaration" : "private func preparePresentationStateForScroll(to toIndexPath: IndexPath, scroll: @escaping () -> Void) -> Bool",
-            "key.parsed_scope.end" : 943,
-            "key.parsed_scope.start" : 924,
+            "key.parsed_scope.end" : 944,
+            "key.parsed_scope.start" : 925,
             "key.substructure" : [
 
             ],
@@ -61418,87 +63639,87 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 31082
+                "key.offset" : 31145
               }
             ],
             "key.bodylength" : 1765,
-            "key.bodyoffset" : 31343,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 31406,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> performBatchUpdates<\/decl.name>(with<\/decl.var.parameter.argument_label> diff<\/decl.var.parameter.name>: SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, updateBackingData<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label> callerCompletion<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 2019,
             "key.name" : "performBatchUpdates(with:animated:updateBackingData:completion:)",
             "key.namelength" : 242,
-            "key.nameoffset" : 31095,
-            "key.offset" : 31090,
+            "key.nameoffset" : 31158,
+            "key.offset" : 31153,
             "key.parsed_declaration" : "private func performBatchUpdates(\n    with diff : SectionedDiff,\n    animated: Bool,\n    updateBackingData : @escaping () -> (),\n    completion callerCompletion : @escaping (Bool) -> ()\n)",
-            "key.parsed_scope.end" : 1000,
-            "key.parsed_scope.start" : 945,
+            "key.parsed_scope.end" : 1001,
+            "key.parsed_scope.start" : 946,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let completion: (Bool<\/Type>) -> ()<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> completion<\/decl.name>: (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 192,
                 "key.name" : "completion",
                 "key.namelength" : 10,
-                "key.nameoffset" : 31465,
-                "key.offset" : 31461,
+                "key.nameoffset" : 31528,
+                "key.offset" : 31524,
                 "key.parsed_declaration" : "let completion = { (completed : Bool) in\n    callerCompletion(completed)\n    SignpostLogger.log(.end, log: .updateContent, name: \"Update UICollectionView\", for: self)\n}",
-                "key.parsed_scope.end" : 954,
-                "key.parsed_scope.start" : 954,
+                "key.parsed_scope.end" : 955,
+                "key.parsed_scope.start" : 955,
                 "key.typename" : "(Bool) -> ()",
                 "key.typeusr" : "$syySbcD",
                 "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData10completionyAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0Z4Item_pAOG_SbyycySbctFAIL_yySbcvp"
               },
               {
                 "key.annotated_decl" : "let view: ListView<\/Type>.CollectionView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> view<\/decl.name>: ListView<\/ref.class>.CollectionView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 30,
                 "key.name" : "view",
                 "key.namelength" : 4,
-                "key.nameoffset" : 31675,
-                "key.offset" : 31671,
+                "key.nameoffset" : 31738,
+                "key.offset" : 31734,
                 "key.parsed_declaration" : "let view = self.collectionView",
-                "key.parsed_scope.end" : 959,
-                "key.parsed_scope.start" : 959,
+                "key.parsed_scope.end" : 960,
+                "key.parsed_scope.start" : 960,
                 "key.typename" : "ListView.CollectionView",
                 "key.typeusr" : "$s10ListableUI8ListViewC010CollectionD0CD",
                 "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData10completionyAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0Z4Item_pAOG_SbyycySbctF4viewL_AC010CollectionD0Cvp"
               },
               {
                 "key.annotated_decl" : "let changes: ListView<\/Type>.CollectionViewChanges<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> changes<\/decl.name>: ListView<\/ref.class>.CollectionViewChanges<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 65,
                 "key.name" : "changes",
                 "key.namelength" : 7,
-                "key.nameoffset" : 31723,
-                "key.offset" : 31719,
+                "key.nameoffset" : 31786,
+                "key.offset" : 31782,
                 "key.parsed_declaration" : "let changes = CollectionViewChanges(sectionChanges: diff.changes)",
-                "key.parsed_scope.end" : 961,
-                "key.parsed_scope.start" : 961,
+                "key.parsed_scope.end" : 962,
+                "key.parsed_scope.start" : 962,
                 "key.typename" : "ListView.CollectionViewChanges",
                 "key.typeusr" : "$s10ListableUI8ListViewC010CollectionD7ChangesVD",
                 "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData10completionyAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0Z4Item_pAOG_SbyycySbctF7changesL_AC010CollectionD7ChangesVvp"
               },
               {
                 "key.annotated_decl" : "let batchUpdates: () -> ()<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> batchUpdates<\/decl.name>: () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 822,
                 "key.name" : "batchUpdates",
                 "key.namelength" : 12,
-                "key.nameoffset" : 31810,
-                "key.offset" : 31806,
+                "key.nameoffset" : 31873,
+                "key.offset" : 31869,
                 "key.parsed_declaration" : "let batchUpdates = {\n    updateBackingData()\n    \n    \/\/ Sections\n\n    view.deleteSections(IndexSet(changes.deletedSections.map { $0.oldIndex }))\n    view.insertSections(IndexSet(changes.insertedSections.map { $0.newIndex }))\n    \n    changes.movedSections.forEach {\n        view.moveSection($0.oldIndex, toSection: $0.newIndex)\n    }\n\n    \/\/ Items\n    \n    view.deleteItems(at: changes.deletedItems.map { $0.oldIndex })\n    view.insertItems(at: changes.insertedItems.map { $0.newIndex })\n    \n    changes.movedItems.forEach {\n        view.moveItem(at: $0.oldIndex, to: $0.newIndex)\n    }\n    \n    self.visibleContent.updateVisibleViews(with: self.environment)\n}",
-                "key.parsed_scope.end" : 963,
-                "key.parsed_scope.start" : 963,
+                "key.parsed_scope.end" : 964,
+                "key.parsed_scope.start" : 964,
                 "key.typename" : "() -> ()",
                 "key.typeusr" : "$syycD",
                 "key.usr" : "s:10ListableUI8ListViewC19performBatchUpdates33_A65B53D10B0C487915F0C0C4684244E8LL4with8animated17updateBackingData10completionyAA13SectionedDiffVyAA7SectionVAA13AnyIdentifierCAA0Z4Item_pAOG_SbyycySbctF05batchG0L_yycvp"
@@ -61515,22 +63736,22 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 33119
+                "key.offset" : 33182
               }
             ],
             "key.bodylength" : 620,
-            "key.bodyoffset" : 33252,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 33315,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> diffWith<\/decl.name>(old<\/decl.var.parameter.argument_label>: [Section<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, new<\/decl.var.parameter.argument_label>: [Section<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> SectionedDiff<\/ref.struct><Section<\/ref.struct>, AnyIdentifier<\/ref.class>, AnyItem<\/ref.protocol>, AnyIdentifier<\/ref.class>><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 746,
             "key.name" : "diffWith(old:new:)",
             "key.namelength" : 42,
-            "key.nameoffset" : 33139,
-            "key.offset" : 33127,
+            "key.nameoffset" : 33202,
+            "key.offset" : 33190,
             "key.parsed_declaration" : "private static func diffWith(old : [Section], new : [Section]) -> SectionedDiff",
-            "key.parsed_scope.end" : 1020,
-            "key.parsed_scope.start" : 1002,
+            "key.parsed_scope.end" : 1021,
+            "key.parsed_scope.start" : 1003,
             "key.substructure" : [
 
             ],
@@ -61550,28 +63771,28 @@
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 33878
+            "key.offset" : 33941
           }
         ],
         "key.bodylength" : 698,
-        "key.bodyoffset" : 33905,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.bodyoffset" : 33968,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/ref.protocol><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 719,
         "key.name" : "ListView",
         "key.namelength" : 8,
-        "key.nameoffset" : 33895,
-        "key.offset" : 33885,
+        "key.nameoffset" : 33958,
+        "key.offset" : 33948,
         "key.parsed_declaration" : "public extension ListView",
-        "key.parsed_scope.end" : 1042,
-        "key.parsed_scope.start" : 1024,
+        "key.parsed_scope.end" : 1043,
+        "key.parsed_scope.start" : 1025,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func testing_forceLayoutUpdateNow()<\/Declaration>",
             "key.bodylength" : 232,
-            "key.bodyoffset" : 34369,
+            "key.bodyoffset" : 34432,
             "key.doc.column" : 10,
             "key.doc.comment" : "\nCall this method to force an immediate, synchronous re-render of the list\nand its content when writing unit or snapshot tests. This avoids needing to\nspin the runloop or needing to use test expectations to wait for content\nto be rendered asynchronously.\n\n**WARNING**: You must **not** call this method outside of tests. Doing so will cause a fatal error.",
             "key.doc.declaration" : "func testing_forceLayoutUpdateNow()",
@@ -61580,24 +63801,24 @@
                 "Para" : ": You must  call this method outside of tests. Doing so will cause a fatal error."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
-            "key.doc.full_as_xml" : "testing_forceLayoutUpdateNow()<\/Name>s:10ListableUI8ListViewC28testing_forceLayoutUpdateNowyyF<\/USR>func testing_forceLayoutUpdateNow()<\/Declaration>Call this method to force an immediate, synchronous re-render of the list and its content when writing unit or snapshot tests. This avoids needing to spin the runloop or needing to use test expectations to wait for content to be rendered asynchronously.<\/Para><\/Abstract>WARNING<\/bold>: You must not<\/bold> call this method outside of tests. Doing so will cause a fatal error.<\/Para><\/Discussion><\/CommentParts><\/Function>",
-            "key.doc.line" : 1034,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.doc.full_as_xml" : "testing_forceLayoutUpdateNow()<\/Name>s:10ListableUI8ListViewC28testing_forceLayoutUpdateNowyyF<\/USR>func testing_forceLayoutUpdateNow()<\/Declaration>Call this method to force an immediate, synchronous re-render of the list and its content when writing unit or snapshot tests. This avoids needing to spin the runloop or needing to use test expectations to wait for content to be rendered asynchronously.<\/Para><\/Abstract>WARNING<\/bold>: You must not<\/bold> call this method outside of tests. Doing so will cause a fatal error.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.line" : 1035,
             "key.doc.name" : "testing_forceLayoutUpdateNow()",
             "key.doc.type" : "Function",
             "key.doclength" : 414,
-            "key.docoffset" : 33910,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.docoffset" : 33973,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> testing_forceLayoutUpdateNow<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 274,
             "key.name" : "testing_forceLayoutUpdateNow()",
             "key.namelength" : 30,
-            "key.nameoffset" : 34333,
-            "key.offset" : 34328,
+            "key.nameoffset" : 34396,
+            "key.offset" : 34391,
             "key.parsed_declaration" : "func testing_forceLayoutUpdateNow()",
-            "key.parsed_scope.end" : 1041,
-            "key.parsed_scope.start" : 1034,
+            "key.parsed_scope.end" : 1042,
+            "key.parsed_scope.start" : 1035,
             "key.substructure" : [
 
             ],
@@ -61613,15 +63834,15 @@
       {
         "key.annotated_decl" : "public final class ListView : UIView<\/Type>, KeyboardObserverDelegate<\/Type><\/Declaration>",
         "key.bodylength" : 356,
-        "key.bodyoffset" : 34660,
+        "key.bodyoffset" : 34723,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 30,
-            "key.offset" : 34628
+            "key.offset" : 34691
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/ref.protocol><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -61632,32 +63853,32 @@
         "key.length" : 410,
         "key.name" : "ListView",
         "key.namelength" : 8,
-        "key.nameoffset" : 34617,
-        "key.offset" : 34607,
+        "key.nameoffset" : 34680,
+        "key.offset" : 34670,
         "key.parsed_declaration" : "extension ListView : ItemContentCoordinatorDelegate",
-        "key.parsed_scope.end" : 1058,
-        "key.parsed_scope.start" : 1045,
+        "key.parsed_scope.end" : 1059,
+        "key.parsed_scope.start" : 1046,
         "key.substructure" : [
           {
             "key.annotated_decl" : "func coordinatorUpdated(for: AnyItem<\/Type>, animated: Bool<\/Type>)<\/Declaration>",
             "key.bodylength" : 288,
-            "key.bodyoffset" : 34726,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 34789,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> coordinatorUpdated<\/decl.name>(for<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 350,
             "key.name" : "coordinatorUpdated(for:animated:)",
             "key.namelength" : 50,
-            "key.nameoffset" : 34670,
-            "key.offset" : 34665,
+            "key.nameoffset" : 34733,
+            "key.offset" : 34728,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI30ItemContentCoordinatorDelegateP18coordinatorUpdated3for8animatedyAA03AnyC0_p_SbtF"
               }
             ],
             "key.parsed_declaration" : "func coordinatorUpdated(for : AnyItem, animated : Bool)",
-            "key.parsed_scope.end" : 1057,
-            "key.parsed_scope.start" : 1047,
+            "key.parsed_scope.end" : 1058,
+            "key.parsed_scope.start" : 1048,
             "key.substructure" : [
 
             ],
@@ -61673,15 +63894,15 @@
       {
         "key.annotated_decl" : "public final class ListView : UIView<\/Type>, KeyboardObserverDelegate<\/Type><\/Declaration>",
         "key.bodylength" : 839,
-        "key.bodyoffset" : 35068,
+        "key.bodyoffset" : 35131,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 25,
-            "key.offset" : 35041
+            "key.offset" : 35104
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/ref.protocol><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -61692,11 +63913,11 @@
         "key.length" : 888,
         "key.name" : "ListView",
         "key.namelength" : 8,
-        "key.nameoffset" : 35030,
-        "key.offset" : 35020,
+        "key.nameoffset" : 35093,
+        "key.offset" : 35083,
         "key.parsed_declaration" : "extension ListView : ReorderingActionsDelegate",
-        "key.parsed_scope.end" : 1092,
-        "key.parsed_scope.start" : 1061,
+        "key.parsed_scope.end" : 1093,
+        "key.parsed_scope.start" : 1062,
         "key.substructure" : [
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -61704,28 +63925,28 @@
             "key.name" : "MARK: Internal - Moving Items",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 35083
+            "key.offset" : 35146
           },
           {
             "key.annotated_decl" : "func beginInteractiveMovementFor(item: AnyPresentationItemState<\/Type>) -> Bool<\/Type><\/Declaration>",
             "key.bodylength" : 220,
-            "key.bodyoffset" : 35208,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 35271,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> beginInteractiveMovementFor<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 300,
             "key.name" : "beginInteractiveMovementFor(item:)",
             "key.namelength" : 60,
-            "key.nameoffset" : 35134,
-            "key.offset" : 35129,
+            "key.nameoffset" : 35197,
+            "key.offset" : 35192,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP27beginInteractiveMovementFor4itemSbAA24AnyPresentationItemState_p_tF"
               }
             ],
             "key.parsed_declaration" : "func beginInteractiveMovementFor(item : AnyPresentationItemState) -> Bool",
-            "key.parsed_scope.end" : 1074,
-            "key.parsed_scope.start" : 1067,
+            "key.parsed_scope.end" : 1075,
+            "key.parsed_scope.start" : 1068,
             "key.substructure" : [
 
             ],
@@ -61736,37 +63957,37 @@
           {
             "key.annotated_decl" : "func updateInteractiveMovementTargetPosition(with recognizer: UIPanGestureRecognizer<\/Type>)<\/Declaration>",
             "key.bodylength" : 160,
-            "key.bodyoffset" : 35531,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 35594,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateInteractiveMovementTargetPosition<\/decl.name>(with<\/decl.var.parameter.argument_label> recognizer<\/decl.var.parameter.name>: UIPanGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 253,
             "key.name" : "updateInteractiveMovementTargetPosition(with:)",
             "key.namelength" : 81,
-            "key.nameoffset" : 35444,
-            "key.offset" : 35439,
+            "key.nameoffset" : 35507,
+            "key.offset" : 35502,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP39updateInteractiveMovementTargetPosition4withySo22UIPanGestureRecognizerC_tF"
               }
             ],
             "key.parsed_declaration" : "func updateInteractiveMovementTargetPosition(with recognizer : UIPanGestureRecognizer)",
-            "key.parsed_scope.end" : 1081,
-            "key.parsed_scope.start" : 1076,
+            "key.parsed_scope.end" : 1082,
+            "key.parsed_scope.start" : 1077,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let position: CGPoint<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> position<\/decl.name>: CGPoint<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 59,
                 "key.name" : "position",
                 "key.namelength" : 8,
-                "key.nameoffset" : 35544,
-                "key.offset" : 35540,
+                "key.nameoffset" : 35607,
+                "key.offset" : 35603,
                 "key.parsed_declaration" : "let position = recognizer.location(in: self.collectionView)",
-                "key.parsed_scope.end" : 1078,
-                "key.parsed_scope.start" : 1078,
+                "key.parsed_scope.end" : 1079,
+                "key.parsed_scope.start" : 1079,
                 "key.typename" : "CGPoint",
                 "key.typeusr" : "$sSo7CGPointVD",
                 "key.usr" : "s:10ListableUI8ListViewC39updateInteractiveMovementTargetPosition4withySo22UIPanGestureRecognizerC_tF8positionL_So7CGPointVvp"
@@ -61779,23 +64000,23 @@
           {
             "key.annotated_decl" : "func endInteractiveMovement()<\/Declaration>",
             "key.bodylength" : 58,
-            "key.bodyoffset" : 35737,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 35800,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> endInteractiveMovement<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 94,
             "key.name" : "endInteractiveMovement()",
             "key.namelength" : 24,
-            "key.nameoffset" : 35707,
-            "key.offset" : 35702,
+            "key.nameoffset" : 35770,
+            "key.offset" : 35765,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP22endInteractiveMovementyyF"
               }
             ],
             "key.parsed_declaration" : "func endInteractiveMovement()",
-            "key.parsed_scope.end" : 1086,
-            "key.parsed_scope.start" : 1083,
+            "key.parsed_scope.end" : 1087,
+            "key.parsed_scope.start" : 1084,
             "key.substructure" : [
 
             ],
@@ -61806,23 +64027,23 @@
           {
             "key.annotated_decl" : "func cancelInteractiveMovement()<\/Declaration>",
             "key.bodylength" : 61,
-            "key.bodyoffset" : 35844,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 35907,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> cancelInteractiveMovement<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 100,
             "key.name" : "cancelInteractiveMovement()",
             "key.namelength" : 27,
-            "key.nameoffset" : 35811,
-            "key.offset" : 35806,
+            "key.nameoffset" : 35874,
+            "key.offset" : 35869,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI25ReorderingActionsDelegateP25cancelInteractiveMovementyyF"
               }
             ],
             "key.parsed_declaration" : "func cancelInteractiveMovement()",
-            "key.parsed_scope.end" : 1091,
-            "key.parsed_scope.start" : 1088,
+            "key.parsed_scope.end" : 1092,
+            "key.parsed_scope.start" : 1089,
             "key.substructure" : [
 
             ],
@@ -61838,18 +64059,18 @@
       {
         "key.annotated_decl" : "public final class ListView : UIView<\/Type>, KeyboardObserverDelegate<\/Type><\/Declaration>",
         "key.bodylength" : 760,
-        "key.bodyoffset" : 35931,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.bodyoffset" : 35994,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/ref.protocol><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 781,
         "key.name" : "ListView",
         "key.namelength" : 8,
-        "key.nameoffset" : 35921,
-        "key.offset" : 35911,
+        "key.nameoffset" : 35984,
+        "key.offset" : 35974,
         "key.parsed_declaration" : "extension ListView",
-        "key.parsed_scope.end" : 1116,
-        "key.parsed_scope.start" : 1095,
+        "key.parsed_scope.end" : 1117,
+        "key.parsed_scope.start" : 1096,
         "key.substructure" : [
           {
             "key.annotated_decl" : "final class CollectionView : UICollectionView<\/Type><\/Declaration>",
@@ -61857,19 +64078,19 @@
               {
                 "key.attribute" : "source.decl.attribute.final",
                 "key.length" : 5,
-                "key.offset" : 35936
+                "key.offset" : 35999
               }
             ],
             "key.bodylength" : 702,
-            "key.bodyoffset" : 35987,
+            "key.bodyoffset" : 36050,
             "key.elements" : [
               {
                 "key.kind" : "source.lang.swift.structure.elem.typeref",
                 "key.length" : 16,
-                "key.offset" : 35965
+                "key.offset" : 36028
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> CollectionView<\/decl.name> : UICollectionView<\/ref.class><\/decl.class>",
             "key.inheritedtypes" : [
               {
@@ -61880,11 +64101,11 @@
             "key.length" : 748,
             "key.name" : "CollectionView",
             "key.namelength" : 14,
-            "key.nameoffset" : 35948,
-            "key.offset" : 35942,
+            "key.nameoffset" : 36011,
+            "key.offset" : 36005,
             "key.parsed_declaration" : "final class CollectionView : UICollectionView",
-            "key.parsed_scope.end" : 1115,
-            "key.parsed_scope.start" : 1097,
+            "key.parsed_scope.end" : 1116,
+            "key.parsed_scope.start" : 1098,
             "key.substructure" : [
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
@@ -61893,20 +64114,20 @@
                   {
                     "key.attribute" : "source.decl.attribute.weak",
                     "key.length" : 4,
-                    "key.offset" : 35996
+                    "key.offset" : 36059
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> view<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 20,
                 "key.name" : "view",
                 "key.namelength" : 4,
-                "key.nameoffset" : 36005,
-                "key.offset" : 36001,
+                "key.nameoffset" : 36068,
+                "key.offset" : 36064,
                 "key.parsed_declaration" : "weak var view : ListView?",
-                "key.parsed_scope.end" : 1099,
-                "key.parsed_scope.start" : 1099,
+                "key.parsed_scope.end" : 1100,
+                "key.parsed_scope.start" : 1100,
                 "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
                 "key.typename" : "ListView?",
                 "key.typeusr" : "$s10ListableUI8ListViewCSgD",
@@ -61919,27 +64140,27 @@
                   {
                     "key.attribute" : "source.decl.attribute.override",
                     "key.length" : 8,
-                    "key.offset" : 36039
+                    "key.offset" : 36102
                   }
                 ],
                 "key.bodylength" : 612,
-                "key.bodyoffset" : 36071,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.bodyoffset" : 36134,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 636,
                 "key.name" : "layoutSubviews()",
                 "key.namelength" : 16,
-                "key.nameoffset" : 36053,
-                "key.offset" : 36048,
+                "key.nameoffset" : 36116,
+                "key.offset" : 36111,
                 "key.overrides" : [
                   {
                     "key.usr" : "c:objc(cs)UIView(im)layoutSubviews"
                   }
                 ],
                 "key.parsed_declaration" : "override func layoutSubviews()",
-                "key.parsed_scope.end" : 1114,
-                "key.parsed_scope.start" : 1101,
+                "key.parsed_scope.end" : 1115,
+                "key.parsed_scope.start" : 1102,
                 "key.substructure" : [
 
                 ],
@@ -61960,16 +64181,16 @@
       {
         "key.annotated_decl" : "public final class ListView : UIView<\/Type>, KeyboardObserverDelegate<\/Type><\/Declaration>",
         "key.bodylength" : 229,
-        "key.bodyoffset" : 36734,
+        "key.bodyoffset" : 36797,
         "key.doc.comment" : "\nUpdate visibility of items and header \/ footers in the list view.\n\nThis is intentionally performed in `layoutSubviews` of the `UICollectionView`,\n**not** within `scrollViewDidScroll`. Why? `visibleContent.update(with:)`\ndepends on the collection view's layout, which is not updated until it `layoutSubviews`.",
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 16,
-            "key.offset" : 36716
+            "key.offset" : 36779
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/ref.protocol><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -61980,32 +64201,32 @@
         "key.length" : 269,
         "key.name" : "ListView",
         "key.namelength" : 8,
-        "key.nameoffset" : 36705,
-        "key.offset" : 36695,
+        "key.nameoffset" : 36768,
+        "key.offset" : 36758,
         "key.parsed_declaration" : "extension ListView : SignpostLoggable",
-        "key.parsed_scope.end" : 1127,
-        "key.parsed_scope.start" : 1119,
+        "key.parsed_scope.end" : 1128,
+        "key.parsed_scope.start" : 1120,
         "key.substructure" : [
           {
             "key.annotated_decl" : "var signpostInfo: SignpostLoggingInfo<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 182,
-            "key.bodyoffset" : 36779,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 36842,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> signpostInfo<\/decl.name>: SignpostLoggingInfo<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 223,
             "key.name" : "signpostInfo",
             "key.namelength" : 12,
-            "key.nameoffset" : 36743,
-            "key.offset" : 36739,
+            "key.nameoffset" : 36806,
+            "key.offset" : 36802,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI16SignpostLoggableP12signpostInfoAA0c7LoggingF0Vvp"
               }
             ],
             "key.parsed_declaration" : "var signpostInfo : SignpostLoggingInfo",
-            "key.parsed_scope.end" : 1126,
-            "key.parsed_scope.start" : 1121,
+            "key.parsed_scope.end" : 1127,
+            "key.parsed_scope.start" : 1122,
             "key.typename" : "SignpostLoggingInfo",
             "key.typeusr" : "$s10ListableUI19SignpostLoggingInfoVD",
             "key.usr" : "s:10ListableUI8ListViewC12signpostInfoAA015SignpostLoggingF0Vvp"
@@ -62022,11 +64243,11 @@
           {
             "key.attribute" : "source.decl.attribute.fileprivate",
             "key.length" : 11,
-            "key.offset" : 36967
+            "key.offset" : 37030
           }
         ],
         "key.bodylength" : 273,
-        "key.bodyoffset" : 37003,
+        "key.bodyoffset" : 37066,
         "key.filepath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneSimulator.platform\/Developer\/SDKs\/iPhoneSimulator14.2.sdk\/System\/Library\/Frameworks\/UIKit.framework\/Headers\/UIScrollView.h",
         "key.fully_annotated_decl" : "class<\/syntaxtype.keyword> UIScrollView<\/decl.name> : UIView<\/ref.class>, NSCoding<\/ref.protocol>, UIFocusItemScrollableContainer<\/ref.protocol><\/decl.class>",
         "key.is_system" : true,
@@ -62035,42 +64256,42 @@
         "key.modulename" : "UIKit.UIScrollView",
         "key.name" : "UIScrollView",
         "key.namelength" : 12,
-        "key.nameoffset" : 36989,
-        "key.offset" : 36979,
+        "key.nameoffset" : 37052,
+        "key.offset" : 37042,
         "key.parsed_declaration" : "fileprivate extension UIScrollView",
-        "key.parsed_scope.end" : 1140,
-        "key.parsed_scope.start" : 1130,
+        "key.parsed_scope.end" : 1141,
+        "key.parsed_scope.start" : 1131,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.fileprivate",
             "key.annotated_decl" : "func isScrolledNearBottom() -> Bool<\/Type><\/Declaration>",
             "key.bodylength" : 224,
-            "key.bodyoffset" : 37050,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+            "key.bodyoffset" : 37113,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> isScrolledNearBottom<\/decl.name>() -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 266,
             "key.name" : "isScrolledNearBottom()",
             "key.namelength" : 22,
-            "key.nameoffset" : 37014,
-            "key.offset" : 37009,
+            "key.nameoffset" : 37077,
+            "key.offset" : 37072,
             "key.parsed_declaration" : "func isScrolledNearBottom() -> Bool",
-            "key.parsed_scope.end" : 1139,
-            "key.parsed_scope.start" : 1133,
+            "key.parsed_scope.end" : 1140,
+            "key.parsed_scope.start" : 1134,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let viewHeight: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> viewHeight<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 40,
                 "key.name" : "viewHeight",
                 "key.namelength" : 10,
-                "key.nameoffset" : 37063,
-                "key.offset" : 37059,
+                "key.nameoffset" : 37126,
+                "key.offset" : 37122,
                 "key.parsed_declaration" : "let viewHeight = self.bounds.size.height",
-                "key.parsed_scope.end" : 1135,
-                "key.parsed_scope.start" : 1135,
+                "key.parsed_scope.end" : 1136,
+                "key.parsed_scope.start" : 1136,
                 "key.typename" : "CGFloat",
                 "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
                 "key.usr" : "s:So12UIScrollViewC10ListableUIE20isScrolledNearBottom33_A65B53D10B0C487915F0C0C4684244E8LLSbyF10viewHeightL_12CoreGraphics7CGFloatVvp"
@@ -62088,7 +64309,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 871,
     "key.offset" : 0,
@@ -62110,7 +64331,7 @@
         ],
         "key.bodylength" : 720,
         "key.bodyoffset" : 149,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> UpdateCallbacks<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 744,
@@ -62125,7 +64346,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let executionType: ExecutionType<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> executionType<\/decl.name>: ExecutionType<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 33,
@@ -62145,7 +64366,7 @@
             "key.annotated_decl" : "init(_ executionType: ExecutionType<\/Type>)<\/Declaration>",
             "key.bodylength" : 48,
             "key.bodyoffset" : 241,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> executionType<\/decl.var.parameter.name>: ExecutionType<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 88,
@@ -62168,7 +64389,7 @@
             "key.annotated_decl" : "deinit<\/Declaration>",
             "key.bodylength" : 46,
             "key.bodyoffset" : 308,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
             "key.fully_annotated_decl" : "deinit<\/syntaxtype.keyword><\/decl.function.destructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 55,
@@ -62196,7 +64417,7 @@
                 "key.offset" : 361
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> calls<\/decl.name>: [() -> ()<\/tuple><\/decl.function.returntype>]<\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
@@ -62217,7 +64438,7 @@
             "key.annotated_decl" : "func add(if performsCallbacks: Bool<\/Type>, _ call: @escaping () -> ())<\/Declaration>",
             "key.bodylength" : 214,
             "key.bodyoffset" : 483,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> add<\/decl.name>(if<\/decl.var.parameter.argument_label> performsCallbacks<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> call<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 283,
@@ -62240,7 +64461,7 @@
             "key.annotated_decl" : "func perform()<\/Declaration>",
             "key.bodylength" : 65,
             "key.bodyoffset" : 724,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> perform<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 82,
@@ -62263,7 +64484,7 @@
             "key.annotated_decl" : "enum UpdateCallbacks<\/Type>.ExecutionType<\/Declaration>",
             "key.bodylength" : 47,
             "key.bodyoffset" : 820,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
             "key.fully_annotated_decl" : "enum<\/syntaxtype.keyword> UpdateCallbacks<\/ref.class>.ExecutionType<\/decl.name><\/decl.enum>",
             "key.kind" : "source.lang.swift.decl.enum",
             "key.length" : 68,
@@ -62285,7 +64506,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case immediate<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> immediate<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 9,
@@ -62312,7 +64533,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "case queue<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/UpdateCallbacks.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> queue<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 5,
@@ -62342,9 +64563,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 5713,
+    "key.length" : 5714,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -62357,7 +64578,7 @@
             "key.offset" : 829
           }
         ],
-        "key.bodylength" : 2578,
+        "key.bodylength" : 2579,
         "key.bodyoffset" : 879,
         "key.doc.column" : 12,
         "key.doc.comment" : "\nA class which provides an easy way to set up and display a `ListView`,\nThe `ListViewController` itself manages setup and presentation of the list.\n\nAs a consumer of the API, all you need to do is override one method:\n```\nfunc configure(list : inout ListProperties) {\n    ...\n}\n```\nIn which you set up and configure the list as needed.\n\nIn order to reload the list when content changes or other display changes are required, call\n```\nfunc reload(animated : Bool = false)\n```\nWhich will update the list with the new contents returned from your `configure` method.\nIf the `ListViewController`'s view is not loaded, this method has no effect.",
@@ -62382,8 +64603,8 @@
             "Para" : "Which will update the list with the new contents returned from your `configure` method. If the `ListViewController`’s view is not loaded, this method has no effect."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
-        "key.doc.full_as_xml" : "ListViewController<\/Name>c:@M@ListableUI@objc(cs)ListViewController<\/USR>open class ListViewController : UIViewController<\/Declaration>A class which provides an easy way to set up and display a ListView<\/codeVoice>, The ListViewController<\/codeVoice> itself manages setup and presentation of the list.<\/Para><\/Abstract>As a consumer of the API, all you need to do is override one method:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In which you set up and configure the list as needed.<\/Para>In order to reload the list when content changes or other display changes are required, call<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which will update the list with the new contents returned from your configure<\/codeVoice> method. If the ListViewController<\/codeVoice>’s view is not loaded, this method has no effect.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
+        "key.doc.full_as_xml" : "ListViewController<\/Name>c:@M@ListableUI@objc(cs)ListViewController<\/USR>open class ListViewController : UIViewController<\/Declaration>A class which provides an easy way to set up and display a ListView<\/codeVoice>, The ListViewController<\/codeVoice> itself manages setup and presentation of the list.<\/Para><\/Abstract>As a consumer of the API, all you need to do is override one method:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>In which you set up and configure the list as needed.<\/Para>In order to reload the list when content changes or other display changes are required, call<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>Which will update the list with the new contents returned from your configure<\/codeVoice> method. If the ListViewController<\/codeVoice>’s view is not loaded, this method has no effect.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 30,
         "key.doc.name" : "ListViewController",
         "key.doc.type" : "Class",
@@ -62396,7 +64617,7 @@
             "key.offset" : 861
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
         "key.fully_annotated_decl" : "open<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListViewController<\/decl.name> : UIViewController<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -62404,7 +64625,7 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.class",
-        "key.length" : 2624,
+        "key.length" : 2625,
         "key.name" : "ListViewController",
         "key.namelength" : 18,
         "key.nameoffset" : 840,
@@ -62428,13 +64649,13 @@
               {
                 "key.attribute" : "source.decl.attribute.open",
                 "key.length" : 4,
-                "key.offset" : 1912
+                "key.offset" : 1913
               }
             ],
             "key.bodylength" : 140,
-            "key.bodyoffset" : 1966,
+            "key.bodyoffset" : 1967,
             "key.doc.column" : 15,
-            "key.doc.comment" : "Override this method to configure your list how you'd like to.\nThe properties on `ListProperties` closely mirror those on `ListView`\nitself, allowing you to fully configure and work with a list without needing to maintain\nand manage the view instance yourself.\n\nExample\n-------\n```\noverride func configure(list : inout ListProperties)\n{\n    list.appearance = .myAppearance\n\n    list.layout = .list { appearance in\n        \/\/ Configure the appearance.\n    }\n\n    list.stateObserver.onContentChanged { info in\n        MyLogger.log(...)\n    }\n\n    list(\"first-section\") { section in\n        section += self.myPodcasts.map { podcast in\n            PodcastItem(podcast)\n        }\n    }\n}\n```\nYou should not call super in your overridden implementation.",
+            "key.doc.comment" : "Override this method to configure your list how you'd like to.\nThe properties on `ListProperties` closely mirror those on `ListView`\nitself, allowing you to fully configure and work with a list without needing to maintain\nand manage the view instance yourself.\n\nExample\n-------\n```\noverride func configure(list : inout ListProperties)\n{\n    list.appearance = .myAppearance\n\n    list.layout = .table { appearance in\n        \/\/ Configure the appearance.\n    }\n\n    list.stateObserver.onContentChanged { info in\n        MyLogger.log(...)\n    }\n\n    list(\"first-section\") { section in\n        section += self.myPodcasts.map { podcast in\n            PodcastItem(podcast)\n        }\n    }\n}\n```\nYou should not call super in your overridden implementation.",
             "key.doc.declaration" : "open func configure(list: inout ListProperties)",
             "key.doc.discussion" : [
               {
@@ -62444,21 +64665,21 @@
                 "Para" : "You should not call super in your overridden implementation."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
-            "key.doc.full_as_xml" : "configure(list:)<\/Name>s:10ListableUI18ListViewControllerC9configure4listyAA0C10PropertiesVz_tF<\/USR>open func configure(list: inout ListProperties)<\/Declaration>Override this method to configure your list how you’d like to. The properties on ListProperties<\/codeVoice> closely mirror those on ListView<\/codeVoice> itself, allowing you to fully configure and work with a list without needing to maintain and manage the view instance yourself.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You should not call super in your overridden implementation.<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
+            "key.doc.full_as_xml" : "configure(list:)<\/Name>s:10ListableUI18ListViewControllerC9configure4listyAA0C10PropertiesVz_tF<\/USR>open func configure(list: inout ListProperties)<\/Declaration>Override this method to configure your list how you’d like to. The properties on ListProperties<\/codeVoice> closely mirror those on ListView<\/codeVoice> itself, allowing you to fully configure and work with a list without needing to maintain and manage the view instance yourself.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>You should not call super in your overridden implementation.<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 65,
             "key.doc.name" : "configure(list:)",
             "key.doc.type" : "Function",
-            "key.doclength" : 972,
+            "key.doclength" : 973,
             "key.docoffset" : 936,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
             "key.fully_annotated_decl" : "open<\/syntaxtype.keyword> func<\/syntaxtype.keyword> configure<\/decl.name>(list<\/decl.var.parameter.argument_label>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 190,
             "key.name" : "configure(list:)",
             "key.namelength" : 38,
-            "key.nameoffset" : 1922,
-            "key.offset" : 1917,
+            "key.nameoffset" : 1923,
+            "key.offset" : 1918,
             "key.parsed_declaration" : "open func configure(list : inout ListProperties)",
             "key.parsed_scope.end" : 68,
             "key.parsed_scope.start" : 65,
@@ -62475,7 +64696,7 @@
             "key.name" : "MARK: Updating Content",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 2127
+            "key.offset" : 2128
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -62484,19 +64705,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2166
+                "key.offset" : 2167
               }
             ],
             "key.bodylength" : 216,
-            "key.bodyoffset" : 2215,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+            "key.bodyoffset" : 2216,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> reload<\/decl.name>(animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 259,
             "key.name" : "reload(animated:)",
             "key.namelength" : 31,
-            "key.nameoffset" : 2178,
-            "key.offset" : 2173,
+            "key.nameoffset" : 2179,
+            "key.offset" : 2174,
             "key.parsed_declaration" : "public func reload(animated : Bool = false)",
             "key.parsed_scope.end" : 84,
             "key.parsed_scope.start" : 74,
@@ -62513,7 +64734,7 @@
             "key.name" : "MARK: - Internal & Private Methods -",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 2457
+            "key.offset" : 2458
           },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -62521,7 +64742,7 @@
             "key.name" : "MARK: Initialization",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 2518
+            "key.offset" : 2519
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -62530,24 +64751,24 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 2555
+                "key.offset" : 2556
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2548
+                "key.offset" : 2549
               }
             ],
             "key.bodylength" : 51,
-            "key.bodyoffset" : 2637,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+            "key.bodyoffset" : 2638,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(nibName<\/decl.var.parameter.argument_label> nibNameOrNil<\/decl.var.parameter.name>: String<\/ref.struct>?<\/decl.var.parameter.type><\/decl.var.parameter>, bundle<\/decl.var.parameter.argument_label> nibBundleOrNil<\/decl.var.parameter.name>: Bundle<\/ref.class>?<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 125,
             "key.name" : "init(nibName:bundle:)",
             "key.namelength" : 67,
-            "key.nameoffset" : 2564,
-            "key.offset" : 2564,
+            "key.nameoffset" : 2565,
+            "key.offset" : 2565,
             "key.overrides" : [
               {
                 "key.usr" : "c:objc(cs)UIViewController(im)initWithNibName:bundle:"
@@ -62574,28 +64795,28 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2735
+                "key.offset" : 2736
               },
               {
                 "key.attribute" : "source.decl.attribute.required",
                 "key.length" : 8,
-                "key.offset" : 2726
+                "key.offset" : 2727
               },
               {
                 "key.attribute" : "source.decl.attribute.available",
                 "key.length" : 26,
-                "key.offset" : 2699
+                "key.offset" : 2700
               }
             ],
             "key.bodylength" : 14,
-            "key.bodyoffset" : 2765,
+            "key.bodyoffset" : 2766,
             "key.internal_diagnostic" : "Unavailable in the current compilation context.",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 38,
             "key.name" : "init(coder:)",
             "key.namelength" : 21,
-            "key.nameoffset" : 2742,
-            "key.offset" : 2742,
+            "key.nameoffset" : 2743,
+            "key.offset" : 2743,
             "key.substructure" : [
 
             ]
@@ -62606,7 +64827,7 @@
             "key.name" : "MARK: UIViewController",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 2793
+            "key.offset" : 2794
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.private",
@@ -62615,17 +64836,17 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 2825
+                "key.offset" : 2826
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 24,
             "key.name" : "listView",
             "key.namelength" : 8,
-            "key.nameoffset" : 2837,
-            "key.offset" : 2833,
+            "key.nameoffset" : 2838,
+            "key.offset" : 2834,
             "key.parsed_declaration" : "private var listView : ListView?",
             "key.parsed_scope.end" : 103,
             "key.parsed_scope.start" : 103,
@@ -62641,24 +64862,24 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 2874
+                "key.offset" : 2875
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2867
+                "key.offset" : 2868
               }
             ],
             "key.bodylength" : 110,
-            "key.bodyoffset" : 2900,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+            "key.bodyoffset" : 2901,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> loadView<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 128,
             "key.name" : "loadView()",
             "key.namelength" : 10,
-            "key.nameoffset" : 2888,
-            "key.offset" : 2883,
+            "key.nameoffset" : 2889,
+            "key.offset" : 2884,
             "key.overrides" : [
               {
                 "key.usr" : "c:objc(cs)UIViewController(im)loadView"
@@ -62670,14 +64891,14 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let listView: ListView<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 25,
                 "key.name" : "listView",
                 "key.namelength" : 8,
-                "key.nameoffset" : 2913,
-                "key.offset" : 2909,
+                "key.nameoffset" : 2914,
+                "key.offset" : 2910,
                 "key.parsed_declaration" : "let listView = ListView()",
                 "key.parsed_scope.end" : 106,
                 "key.parsed_scope.start" : 106,
@@ -62702,17 +64923,17 @@
               {
                 "key.attribute" : "source.decl.attribute.private",
                 "key.length" : 7,
-                "key.offset" : 3021
+                "key.offset" : 3022
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> hasViewAppeared<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 34,
             "key.name" : "hasViewAppeared",
             "key.namelength" : 15,
-            "key.nameoffset" : 3033,
-            "key.offset" : 3029,
+            "key.nameoffset" : 3034,
+            "key.offset" : 3030,
             "key.parsed_declaration" : "private var hasViewAppeared : Bool = false",
             "key.parsed_scope.end" : 112,
             "key.parsed_scope.start" : 112,
@@ -62728,24 +64949,24 @@
               {
                 "key.attribute" : "source.decl.attribute.override",
                 "key.length" : 8,
-                "key.offset" : 3078
+                "key.offset" : 3079
               },
               {
                 "key.attribute" : "source.decl.attribute.open",
                 "key.length" : 4,
-                "key.offset" : 3073
+                "key.offset" : 3074
               }
             ],
             "key.bodylength" : 325,
-            "key.bodyoffset" : 3130,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+            "key.bodyoffset" : 3131,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
             "key.fully_annotated_decl" : "open<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> viewWillAppear<\/decl.name>(_<\/decl.var.parameter.argument_label> animated<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 369,
             "key.name" : "viewWillAppear(_:)",
             "key.namelength" : 32,
-            "key.nameoffset" : 3092,
-            "key.offset" : 3087,
+            "key.nameoffset" : 3093,
+            "key.offset" : 3088,
             "key.overrides" : [
               {
                 "key.usr" : "c:objc(cs)UIViewController(im)viewWillAppear:"
@@ -62773,19 +64994,19 @@
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 3461
+            "key.offset" : 3462
           }
         ],
         "key.bodylength" : 2223,
-        "key.bodyoffset" : 3488,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListView\/ListView.swift",
+        "key.bodyoffset" : 3489,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListView\/ListView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ListView<\/decl.name> : UIView<\/ref.class>, KeyboardObserverDelegate<\/decl.class>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 2244,
         "key.name" : "ListView",
         "key.namelength" : 8,
-        "key.nameoffset" : 3478,
-        "key.offset" : 3468,
+        "key.nameoffset" : 3479,
+        "key.offset" : 3469,
         "key.parsed_declaration" : "public extension ListView",
         "key.parsed_scope.end" : 174,
         "key.parsed_scope.start" : 128,
@@ -62794,7 +65015,7 @@
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator<\/Type>?, animated: Bool<\/Type>)<\/Declaration>",
             "key.bodylength" : 1340,
-            "key.bodyoffset" : 4369,
+            "key.bodyoffset" : 4370,
             "key.doc.column" : 10,
             "key.doc.comment" : "A method which provides `Behavior.SelectionMode.single`'s `clearsSelectionOnViewWillAppear` behaviour.\nBy default, this method is called by `ListViewController`. However if you are not using `ListViewController` you\nwill need to call this method yourself one of two ways:\n\n1) If subclassing `UIViewController`: within your view controller's `viewWillAppear` method.\n\n2) By invoking this same method on your `ListActions` that you have wired up to your list view. Use this\nin the case that you do not have access to your list view at all, such as when using `BlueprintUILists`.\n\n\/\/ Behaviour from UIKit Eng: https:\/\/twitter.com\/smileyborg\/status\/1279473615553982464",
             "key.doc.declaration" : "func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator?, animated: Bool)",
@@ -62806,35 +65027,35 @@
                 "Para" : "\/\/ Behaviour from UIKit Eng: https:\/\/twitter.com\/smileyborg\/status\/1279473615553982464"
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
-            "key.doc.full_as_xml" : "clearSelectionDuringViewWillAppear(alongside:animated:)<\/Name>s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF<\/USR>func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator?, animated: Bool)<\/Declaration>A method which provides Behavior.SelectionMode.single<\/codeVoice>’s clearsSelectionOnViewWillAppear<\/codeVoice> behaviour. By default, this method is called by ListViewController<\/codeVoice>. However if you are not using ListViewController<\/codeVoice> you will need to call this method yourself one of two ways:<\/Para><\/Abstract>If subclassing UIViewController<\/codeVoice>: within your view controller’s viewWillAppear<\/codeVoice> method.<\/Para><\/Item>By invoking this same method on your ListActions<\/codeVoice> that you have wired up to your list view. Use this in the case that you do not have access to your list view at all, such as when using BlueprintUILists<\/codeVoice>.<\/Para><\/Item><\/List-Number>\/\/ Behaviour from UIKit Eng: https:\/\/twitter.com\/smileyborg\/status\/1279473615553982464<\/Para><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
+            "key.doc.full_as_xml" : "clearSelectionDuringViewWillAppear(alongside:animated:)<\/Name>s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF<\/USR>func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator?, animated: Bool)<\/Declaration>A method which provides Behavior.SelectionMode.single<\/codeVoice>’s clearsSelectionOnViewWillAppear<\/codeVoice> behaviour. By default, this method is called by ListViewController<\/codeVoice>. However if you are not using ListViewController<\/codeVoice> you will need to call this method yourself one of two ways:<\/Para><\/Abstract>If subclassing UIViewController<\/codeVoice>: within your view controller’s viewWillAppear<\/codeVoice> method.<\/Para><\/Item>By invoking this same method on your ListActions<\/codeVoice> that you have wired up to your list view. Use this in the case that you do not have access to your list view at all, such as when using BlueprintUILists<\/codeVoice>.<\/Para><\/Item><\/List-Number>\/\/ Behaviour from UIKit Eng: https:\/\/twitter.com\/smileyborg\/status\/1279473615553982464<\/Para><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 141,
             "key.doc.name" : "clearSelectionDuringViewWillAppear(alongside:animated:)",
             "key.doc.type" : "Function",
             "key.doclength" : 746,
-            "key.docoffset" : 3498,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+            "key.docoffset" : 3499,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> clearSelectionDuringViewWillAppear<\/decl.name>(alongside<\/decl.var.parameter.argument_label> coordinator<\/decl.var.parameter.name>: UIViewControllerTransitionCoordinator<\/ref.protocol>?<\/decl.var.parameter.type><\/decl.var.parameter>, animated<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1462,
             "key.name" : "clearSelectionDuringViewWillAppear(alongside:animated:)",
             "key.namelength" : 114,
-            "key.nameoffset" : 4253,
-            "key.offset" : 4248,
+            "key.nameoffset" : 4254,
+            "key.offset" : 4249,
             "key.parsed_declaration" : "func clearSelectionDuringViewWillAppear(alongside coordinator: UIViewControllerTransitionCoordinator?, animated : Bool)",
             "key.parsed_scope.end" : 173,
             "key.parsed_scope.start" : 141,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let item: AnyPresentationItemState<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewController.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewController.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 56,
                 "key.name" : "item",
                 "key.namelength" : 4,
-                "key.nameoffset" : 4667,
-                "key.offset" : 4663,
+                "key.nameoffset" : 4668,
+                "key.offset" : 4664,
                 "key.parsed_declaration" : "let item = storage.presentationState.item(at: indexPath)",
                 "key.parsed_scope.end" : 151,
                 "key.parsed_scope.start" : 151,
@@ -62855,7 +65076,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 4139,
     "key.offset" : 0,
@@ -62880,7 +65101,7 @@
         ],
         "key.bodylength" : 182,
         "key.bodyoffset" : 172,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListViewSource<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.protocol",
         "key.length" : 208,
@@ -62895,7 +65116,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "associatedtype State : Equatable<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "associatedtype<\/syntaxtype.keyword> State<\/decl.name> : Equatable<\/ref.protocol><\/decl.associatedtype>",
             "key.kind" : "source.lang.swift.decl.associatedtype",
             "key.length" : 30,
@@ -62913,7 +65134,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func content(with state: SourceState<\/Type><State<\/Type>>, content: inout Content<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><State<\/ref.associatedtype>><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 70,
@@ -62942,7 +65163,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func content(with state: SourceState<\/Type><State<\/Type>>) -> Content<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><State<\/ref.associatedtype>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 56,
@@ -62985,7 +65206,7 @@
         ],
         "key.bodylength" : 179,
         "key.bodyoffset" : 391,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> ListViewSource<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 206,
@@ -63002,7 +65223,7 @@
             "key.annotated_decl" : "func content(with state: SourceState<\/Type><State<\/Type>>) -> Content<\/Type><\/Declaration>",
             "key.bodylength" : 110,
             "key.bodyoffset" : 458,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><State<\/ref.associatedtype>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 173,
@@ -63045,7 +65266,7 @@
         ],
         "key.bodylength" : 61,
         "key.bodyoffset" : 612,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
         "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnySourcePresenter<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.protocol",
         "key.length" : 91,
@@ -63060,7 +65281,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func discard()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> discard<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 14,
@@ -63078,7 +65299,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func reloadContent() -> Content<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> reloadContent<\/decl.name>() -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 31,
@@ -63122,7 +65343,7 @@
             "key.offset" : 739
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
         "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SourcePresenter<\/decl.name><Source<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnySourcePresenter<\/ref.protocol> where<\/syntaxtype.keyword> Source : ListViewSource<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -63148,7 +65369,7 @@
                 "key.offset" : 721
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "Source<\/decl.generic_type_param.name> : ListViewSource<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -63171,7 +65392,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let source: Source<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> source<\/decl.name>: Source<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -63191,7 +65412,7 @@
             "key.annotated_decl" : "var state: Source<\/Type>.State<\/Type> { get set }<\/Declaration>",
             "key.bodylength" : 101,
             "key.bodyoffset" : 819,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> state<\/decl.name>: Source<\/ref.generic_type_param>.State<\/ref.associatedtype><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 128,
@@ -63217,7 +65438,7 @@
                 "key.offset" : 931
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> sourceState<\/decl.name>: SourceState<\/ref.class><Source<\/ref.generic_type_param>.State<\/ref.associatedtype>><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 43,
@@ -63238,7 +65459,7 @@
             "key.annotated_decl" : "init(initial: Source<\/Type>.State<\/Type>, source: Source<\/Type>, didChange: @escaping () -> () = {})<\/Declaration>",
             "key.bodylength" : 122,
             "key.bodyoffset" : 1080,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(initial<\/decl.var.parameter.argument_label>: Source<\/ref.generic_type_param>.State<\/ref.associatedtype><\/decl.var.parameter.type><\/decl.var.parameter>, source<\/decl.var.parameter.argument_label>: Source<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, didChange<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = {}<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 211,
@@ -63269,7 +65490,7 @@
             "key.annotated_decl" : "func discard()<\/Declaration>",
             "key.bodylength" : 40,
             "key.bodyoffset" : 1277,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> discard<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 61,
@@ -63304,7 +65525,7 @@
             ],
             "key.bodylength" : 64,
             "key.bodyoffset" : 1374,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> reloadContent<\/decl.name>() -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 102,
@@ -63349,7 +65570,7 @@
         ],
         "key.bodylength" : 323,
         "key.bodyoffset" : 1495,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> StateAccessor<\/decl.name><State<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> State : Equatable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 362,
@@ -63370,7 +65591,7 @@
                 "key.offset" : 1483
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "State<\/decl.generic_type_param.name> : Equatable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -63402,7 +65623,7 @@
             ],
             "key.bodylength" : 74,
             "key.bodyoffset" : 1526,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> value<\/decl.name>: State<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 94,
@@ -63428,7 +65649,7 @@
                 "key.offset" : 1611
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> get<\/decl.name>: () -> State<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -63453,7 +65674,7 @@
                 "key.offset" : 1645
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> set<\/decl.name>: (State<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -63480,7 +65701,7 @@
             ],
             "key.bodylength" : 51,
             "key.bodyoffset" : 1765,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(get<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> State<\/ref.generic_type_param><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, set<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (State<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 122,
@@ -63520,7 +65741,7 @@
         ],
         "key.bodylength" : 601,
         "key.bodyoffset" : 1871,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> SourceState<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>> where<\/syntaxtype.keyword> Value : Equatable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 638,
@@ -63541,7 +65762,7 @@
                 "key.offset" : 1859
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name> : Equatable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -63573,7 +65794,7 @@
             ],
             "key.bodylength" : 132,
             "key.bodyoffset" : 1902,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> value<\/decl.name>: Value<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 152,
@@ -63601,7 +65822,7 @@
             ],
             "key.bodylength" : 97,
             "key.bodyoffset" : 2097,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> set<\/decl.name>(_<\/decl.var.parameter.argument_label> block<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 143,
@@ -63615,7 +65836,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "var new: Value<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> new<\/decl.name>: Value<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 20,
@@ -63647,7 +65868,7 @@
             ],
             "key.bodylength" : 76,
             "key.bodyoffset" : 2277,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(initial<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, didChange<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 142,
@@ -63677,7 +65898,7 @@
             ],
             "key.bodylength" : 34,
             "key.bodyoffset" : 2391,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> discard<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 55,
@@ -63702,7 +65923,7 @@
                 "key.offset" : 2436
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> didChange<\/decl.name>: (() -> ()<\/tuple><\/decl.function.returntype><\/tuple.element.type><\/tuple.element>)<\/tuple>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
@@ -63755,7 +65976,7 @@
             "key.offset" : 2566
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> DynamicSource<\/decl.name><Input<\/decl.generic_type_param.name><\/decl.generic_type_param>> : ListViewSource<\/ref.protocol> where<\/syntaxtype.keyword> Input : Equatable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -63781,7 +66002,7 @@
                 "key.offset" : 2553
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "Input<\/decl.generic_type_param.name> : Equatable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -63811,7 +66032,7 @@
                 "key.offset" : 2587
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> DynamicSource<\/ref.class><Input>.Builder<\/decl.name> = (SourceState<\/ref.class><Input<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 61,
@@ -63829,7 +66050,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let builder: Builder<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> builder<\/decl.name>: Builder<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -63856,7 +66077,7 @@
             ],
             "key.bodylength" : 36,
             "key.bodyoffset" : 2747,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> builder<\/decl.var.parameter.name>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Builder<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 81,
@@ -63886,7 +66107,7 @@
             ],
             "key.bodylength" : 43,
             "key.bodyoffset" : 2875,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><Input<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 118,
@@ -63946,7 +66167,7 @@
             "key.offset" : 2993
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> StaticSource<\/decl.name> : ListViewSource<\/ref.protocol><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -63982,7 +66203,7 @@
                 "key.offset" : 3036
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> StaticSource<\/ref.class>.State<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -64016,7 +66237,7 @@
                 ],
                 "key.bodylength" : 0,
                 "key.bodyoffset" : 3075,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 9,
@@ -64046,7 +66267,7 @@
                 "key.offset" : 3092
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> let<\/syntaxtype.keyword> content<\/decl.name>: Content<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -64081,7 +66302,7 @@
             ],
             "key.bodylength" : 36,
             "key.bodyoffset" : 3183,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> content<\/decl.var.parameter.name>: Content<\/ref.struct><\/decl.var.parameter.type> = Content()<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 83,
@@ -64121,7 +66342,7 @@
             ],
             "key.bodylength" : 53,
             "key.bodyoffset" : 3289,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> convenience<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> builder<\/decl.var.parameter.name>: Content<\/ref.struct>.Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 94,
@@ -64156,7 +66377,7 @@
             ],
             "key.bodylength" : 29,
             "key.bodyoffset" : 3447,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><StaticSource<\/ref.class>.State<\/ref.struct>><\/decl.var.parameter.type><\/decl.var.parameter>, content<\/decl.var.parameter.argument_label>: inout<\/syntaxtype.keyword> Content<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 117,
@@ -64199,7 +66420,7 @@
             ],
             "key.bodylength" : 33,
             "key.bodyoffset" : 3568,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> content<\/decl.name>(with<\/decl.var.parameter.argument_label> state<\/decl.var.parameter.name>: SourceState<\/ref.class><StaticSource<\/ref.class>.State<\/ref.struct>><\/decl.var.parameter.type><\/decl.var.parameter>) -> Content<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 108,
@@ -64260,7 +66481,7 @@
         ],
         "key.bodylength" : 460,
         "key.bodyoffset" : 3677,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
         "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReloadTimer<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 480,
@@ -64282,7 +66503,7 @@
                 "key.offset" : 3682
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> timer<\/decl.name>: Timer<\/ref.class>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 18,
@@ -64301,7 +66522,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "typealias ReloadTimer<\/Type>.OnFire = () -> ()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "typealias<\/syntaxtype.keyword> ReloadTimer<\/ref.class>.OnFire<\/decl.name> = () -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 27,
@@ -64326,7 +66547,7 @@
                 "key.offset" : 3750
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onFire<\/decl.name>: OnFire<\/ref.typealias>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 20,
@@ -64347,7 +66568,7 @@
             "key.annotated_decl" : "init(onFire: @escaping OnFire<\/Type>)<\/Declaration>",
             "key.bodylength" : 182,
             "key.bodyoffset" : 3825,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(onFire<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnFire<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 220,
@@ -64377,7 +66598,7 @@
             ],
             "key.bodylength" : 88,
             "key.bodyoffset" : 4047,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ListViewSource.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ListViewSource.swift",
             "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> func<\/syntaxtype.keyword> timerFired<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 112,
@@ -64403,7 +66624,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 7307,
     "key.offset" : 0,
@@ -64431,8 +66652,8 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-        "key.doc.full_as_xml" : "LocalizedCollatableItemContent<\/Name>s:10ListableUI30LocalizedCollatableItemContentP<\/USR>public protocol LocalizedCollatableItemContent : ListableUI.ItemContent<\/Declaration>If you would like to make your ItemContent<\/codeVoice> work with the LocalizedItemCollator<\/codeVoice>, you should make it conform to this protocol, and then return a collationString<\/codeVoice> that represents the primary content of your ItemContent<\/codeVoice>; usually a name or title.<\/Para><\/Abstract>Upon collation, the ItemContent<\/codeVoice> will then be grouped into sections according to its first “character” in a localized manner.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+        "key.doc.full_as_xml" : "LocalizedCollatableItemContent<\/Name>s:10ListableUI30LocalizedCollatableItemContentP<\/USR>public protocol LocalizedCollatableItemContent : ListableUI.ItemContent<\/Declaration>If you would like to make your ItemContent<\/codeVoice> work with the LocalizedItemCollator<\/codeVoice>, you should make it conform to this protocol, and then return a collationString<\/codeVoice> that represents the primary content of your ItemContent<\/codeVoice>; usually a name or title.<\/Para><\/Abstract>Upon collation, the ItemContent<\/codeVoice> will then be grouped into sections according to its first “character” in a localized manner.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 28,
         "key.doc.name" : "LocalizedCollatableItemContent",
         "key.doc.type" : "Class",
@@ -64445,7 +66666,7 @@
             "key.offset" : 765
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> LocalizedCollatableItemContent<\/decl.name> : ItemContent<\/ref.protocol><\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -64470,14 +66691,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "A string that represents the primary content of your `ItemContent`; usually a name or title.",
             "key.doc.declaration" : "var collationString: String { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-            "key.doc.full_as_xml" : "collationString<\/Name>s:10ListableUI30LocalizedCollatableItemContentP15collationStringSSvp<\/USR>var collationString: String { get }<\/Declaration>A string that represents the primary content of your ItemContent<\/codeVoice>; usually a name or title.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.doc.full_as_xml" : "collationString<\/Name>s:10ListableUI30LocalizedCollatableItemContentP15collationStringSSvp<\/USR>var collationString: String { get }<\/Declaration>A string that represents the primary content of your ItemContent<\/codeVoice>; usually a name or title.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 31,
             "key.doc.name" : "collationString",
             "key.doc.type" : "Other",
             "key.doclength" : 97,
             "key.docoffset" : 788,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> collationString<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 36,
@@ -64517,8 +66738,8 @@
             "Para" : "`Item` (and by extension `AnyItem`) is conditionally conformed to this protocol when its `Content` conforms to `LocalizedCollatableItemContent`, to allow vending homogenous lists of content to be collated."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-        "key.doc.full_as_xml" : "AnyLocalizedCollatableItem<\/Name>s:10ListableUI26AnyLocalizedCollatableItemP<\/USR>public protocol AnyLocalizedCollatableItem : ListableUI.AnyItem<\/Declaration>Represents an AnyItem<\/codeVoice> which can be collated, via its vended collationString<\/codeVoice>.<\/Para><\/Abstract>Item<\/codeVoice> (and by extension AnyItem<\/codeVoice>) is conditionally conformed to this protocol when its Content<\/codeVoice> conforms to LocalizedCollatableItemContent<\/codeVoice>, to allow vending homogenous lists of content to be collated.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+        "key.doc.full_as_xml" : "AnyLocalizedCollatableItem<\/Name>s:10ListableUI26AnyLocalizedCollatableItemP<\/USR>public protocol AnyLocalizedCollatableItem : ListableUI.AnyItem<\/Declaration>Represents an AnyItem<\/codeVoice> which can be collated, via its vended collationString<\/codeVoice>.<\/Para><\/Abstract>Item<\/codeVoice> (and by extension AnyItem<\/codeVoice>) is conditionally conformed to this protocol when its Content<\/codeVoice> conforms to LocalizedCollatableItemContent<\/codeVoice>, to allow vending homogenous lists of content to be collated.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 42,
         "key.doc.name" : "AnyLocalizedCollatableItem",
         "key.doc.type" : "Class",
@@ -64531,7 +66752,7 @@
             "key.offset" : 1290
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnyLocalizedCollatableItem<\/decl.name> : AnyItem<\/ref.protocol><\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -64553,7 +66774,7 @@
             "key.annotated_decl" : "var collationString: String<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
             "key.bodyoffset" : 1334,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> collationString<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 36,
@@ -64605,14 +66826,14 @@
             "Para" : "If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc)."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-        "key.doc.full_as_xml" : "LocalizedItemCollator<\/Name>s:10ListableUI21LocalizedItemCollatorV<\/USR>public struct LocalizedItemCollator<\/Declaration>If you’re looking for the equivalent of UILocalizedIndexedCollation<\/codeVoice> for lists, you have come to the right place.<\/Para><\/Abstract>LocalizedItemCollator<\/codeVoice> takes in a list of unsorted content, and sorts and then partitions the content into sections, returning you a list of collated sections for display.<\/Para>Just like UILocalizedIndexedCollation<\/codeVoice>, LocalizedItemCollator<\/codeVoice> takes into account the localization settings of the device, using different collation for the various supported iOS languages.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Warning]]><\/rawHTML>Sorting and partitioning thousands and thousands of Items<\/codeVoice> each time a list updates can be expensive, especially on slower devices.<\/Para>If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc).<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+        "key.doc.full_as_xml" : "LocalizedItemCollator<\/Name>s:10ListableUI21LocalizedItemCollatorV<\/USR>public struct LocalizedItemCollator<\/Declaration>If you’re looking for the equivalent of UILocalizedIndexedCollation<\/codeVoice> for lists, you have come to the right place.<\/Para><\/Abstract>LocalizedItemCollator<\/codeVoice> takes in a list of unsorted content, and sorts and then partitions the content into sections, returning you a list of collated sections for display.<\/Para>Just like UILocalizedIndexedCollation<\/codeVoice>, LocalizedItemCollator<\/codeVoice> takes into account the localization settings of the device, using different collation for the various supported iOS languages.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Warning]]><\/rawHTML>Sorting and partitioning thousands and thousands of Items<\/codeVoice> each time a list updates can be expensive, especially on slower devices.<\/Para>If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc).<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 83,
         "key.doc.name" : "LocalizedItemCollator",
         "key.doc.type" : "Class",
         "key.doclength" : 1542,
         "key.docoffset" : 1345,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LocalizedItemCollator<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 3501,
@@ -64647,14 +66868,14 @@
             "key.doc.column" : 24,
             "key.doc.comment" : "Collates and returns the set of items into `CollatedSection`s.\nYou may then convert these into list `Section`s, or for another use.",
             "key.doc.declaration" : "public static func collate(collation: UILocalizedIndexedCollation = .current(), items: [AnyLocalizedCollatableItem]) -> [CollatedSection]",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-            "key.doc.full_as_xml" : "collate(collation:items:)<\/Name>s:10ListableUI21LocalizedItemCollatorV7collate9collation5itemsSayAC15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtFZ<\/USR>public static func collate(collation: UILocalizedIndexedCollation = .current(), items: [AnyLocalizedCollatableItem]) -> [CollatedSection]<\/Declaration>Collates and returns the set of items into CollatedSection<\/codeVoice>s. You may then convert these into list Section<\/codeVoice>s, or for another use.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.doc.full_as_xml" : "collate(collation:items:)<\/Name>s:10ListableUI21LocalizedItemCollatorV7collate9collation5itemsSayAC15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtFZ<\/USR>public static func collate(collation: UILocalizedIndexedCollation = .current(), items: [AnyLocalizedCollatableItem]) -> [CollatedSection]<\/Declaration>Collates and returns the set of items into CollatedSection<\/codeVoice>s. You may then convert these into list Section<\/codeVoice>s, or for another use.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 91,
             "key.doc.name" : "collate(collation:items:)",
             "key.doc.type" : "Function",
             "key.doclength" : 144,
             "key.docoffset" : 2973,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> collate<\/decl.name>(collation<\/decl.var.parameter.argument_label>: UILocalizedIndexedCollation<\/ref.class><\/decl.var.parameter.type> = .current()<\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [AnyLocalizedCollatableItem<\/ref.protocol>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> [CollatedSection<\/ref.struct>]<\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 263,
@@ -64692,14 +66913,14 @@
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-            "key.doc.full_as_xml" : "sections(collation:with:_:)<\/Name>s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ<\/USR>public static func sections(collation: UILocalizedIndexedCollation = .current(), with items: [AnyLocalizedCollatableItem], _ modify: (CollatedSection, inout Section) -> () = { _, _ in }) -> [Section]<\/Declaration>Collates and returns the set of items into list Sections<\/codeVoice>, allowing you to customize each Section<\/codeVoice> via the provided modify<\/codeVoice> closure.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.doc.full_as_xml" : "sections(collation:with:_:)<\/Name>s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ<\/USR>public static func sections(collation: UILocalizedIndexedCollation = .current(), with items: [AnyLocalizedCollatableItem], _ modify: (CollatedSection, inout Section) -> () = { _, _ in }) -> [Section]<\/Declaration>Collates and returns the set of items into list Sections<\/codeVoice>, allowing you to customize each Section<\/codeVoice> via the provided modify<\/codeVoice> closure.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 115,
             "key.doc.name" : "sections(collation:with:_:)",
             "key.doc.type" : "Function",
             "key.doclength" : 492,
             "key.docoffset" : 3401,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sections<\/decl.name>(collation<\/decl.var.parameter.argument_label>: UILocalizedIndexedCollation<\/ref.class><\/decl.var.parameter.type> = .current()<\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> items<\/decl.var.parameter.name>: [AnyLocalizedCollatableItem<\/ref.protocol>]<\/decl.var.parameter.type><\/decl.var.parameter>, _<\/decl.var.parameter.argument_label> modify<\/decl.var.parameter.name>: (CollatedSection<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _, _ in }<\/decl.var.parameter>) -> [Section<\/ref.struct>]<\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 535,
@@ -64713,7 +66934,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let collated: [LocalizedItemCollator<\/Type>.CollatedSection<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> collated<\/decl.name>: [LocalizedItemCollator<\/ref.struct>.CollatedSection<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 63,
@@ -64749,7 +66970,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "let collated: [CollatedSection<\/Type>]<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
             "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> collated<\/decl.name>: [CollatedSection<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 32,
@@ -64769,7 +66990,7 @@
             "key.annotated_decl" : "init(collation: UILocalizedIndexedCollation<\/Type> = .current(), items: [AnyLocalizedCollatableItem<\/Type>])<\/Declaration>",
             "key.bodylength" : 1186,
             "key.bodyoffset" : 4652,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(collation<\/decl.var.parameter.argument_label>: UILocalizedIndexedCollation<\/ref.class><\/decl.var.parameter.type> = .current()<\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [AnyLocalizedCollatableItem<\/ref.protocol>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1307,
@@ -64791,14 +67012,14 @@
                     "List-Number" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-                "key.doc.full_as_xml" : "providers<\/Name>s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc9providersL_SayAC8Provider33_7EA791928592DFF016E56E231602D101LLCGvp<\/USR>let providers: [ListableUI.LocalizedItemCollator.Provider]<\/Declaration>Convert to providers so we can leverage collationStringSelector<\/codeVoice>, which is Objective-C only.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.doc.full_as_xml" : "providers<\/Name>s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc9providersL_SayAC8Provider33_7EA791928592DFF016E56E231602D101LLCGvp<\/USR>let providers: [ListableUI.LocalizedItemCollator.Provider]<\/Declaration>Convert to providers so we can leverage collationStringSelector<\/codeVoice>, which is Objective-C only.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 144,
                 "key.doc.name" : "providers",
                 "key.doc.type" : "Other",
                 "key.doclength" : 101,
                 "key.docoffset" : 4661,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> providers<\/decl.name>: [LocalizedItemCollator<\/ref.struct>.Provider<\/ref.class>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 68,
@@ -64823,14 +67044,14 @@
                     "List-Number" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-                "key.doc.full_as_xml" : "collated<\/Name>s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc8collatedL_SayAC15CollatedSectionVGvp<\/USR>var collated: [ListableUI.LocalizedItemCollator.CollatedSection]<\/Declaration>Convert the titles from the collation into sections.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.doc.full_as_xml" : "collated<\/Name>s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc8collatedL_SayAC15CollatedSectionVGvp<\/USR>var collated: [ListableUI.LocalizedItemCollator.CollatedSection]<\/Declaration>Convert the titles from the collation into sections.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 150,
                 "key.doc.name" : "collated",
                 "key.doc.type" : "Other",
                 "key.doclength" : 60,
                 "key.docoffset" : 4865,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> collated<\/decl.name>: [LocalizedItemCollator<\/ref.struct>.CollatedSection<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 105,
@@ -64860,14 +67081,14 @@
                     "List-Number" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-                "key.doc.full_as_xml" : "sorted<\/Name>s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc6sortedL_SayypGvp<\/USR>let sorted: [Any]<\/Declaration>Sort all of the provided content based on the collationString<\/codeVoice>.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.doc.full_as_xml" : "sorted<\/Name>s:10ListableUI21LocalizedItemCollatorV9collation5itemsACSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtcfc6sortedL_SayypGvp<\/USR>let sorted: [Any]<\/Declaration>Sort all of the provided content based on the collationString<\/codeVoice>.<\/Para><\/Item><\/List-Number><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 156,
                 "key.doc.name" : "sorted",
                 "key.doc.type" : "Other",
                 "key.doclength" : 72,
                 "key.docoffset" : 5065,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> sorted<\/decl.name>: [Any<\/syntaxtype.keyword>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 121,
@@ -64885,7 +67106,7 @@
               {
                 "key.annotated_decl" : "let provider: Any<\/Declaration>",
                 "key.doc.comment" : "4) Insert the sorted content into the correct section's items.",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> provider<\/decl.name>: Any<\/syntaxtype.keyword><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 8,
@@ -64923,14 +67144,14 @@
             "key.doc.column" : 25,
             "key.doc.comment" : "A private wrapper that is used to ensure we have an Objective-C selector to vend to `collationStringSelector`.",
             "key.doc.declaration" : "private final class ListableUI.LocalizedItemCollator.Provider",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-            "key.doc.full_as_xml" : "Provider<\/Name>s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC<\/USR>private final class ListableUI.LocalizedItemCollator.Provider<\/Declaration>A private wrapper that is used to ensure we have an Objective-C selector to vend to collationStringSelector<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.doc.full_as_xml" : "Provider<\/Name>s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC<\/USR>private final class ListableUI.LocalizedItemCollator.Provider<\/Declaration>A private wrapper that is used to ensure we have an Objective-C selector to vend to collationStringSelector<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Class>",
             "key.doc.line" : 174,
             "key.doc.name" : "Provider",
             "key.doc.type" : "Class",
             "key.doclength" : 115,
             "key.docoffset" : 5849,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> LocalizedItemCollator<\/ref.struct>.Provider<\/decl.name><\/decl.class>",
             "key.kind" : "source.lang.swift.decl.class",
             "key.length" : 411,
@@ -64948,14 +67169,14 @@
                 "key.doc.column" : 13,
                 "key.doc.comment" : "The item backing the provider, to vend the `collationString`.",
                 "key.doc.declaration" : "let item: AnyLocalizedCollatableItem",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-                "key.doc.full_as_xml" : "item<\/Name>s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC4itemAA03Anyc10CollatableD0_pvp<\/USR>let item: AnyLocalizedCollatableItem<\/Declaration>The item backing the provider, to vend the collationString<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.doc.full_as_xml" : "item<\/Name>s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC4itemAA03Anyc10CollatableD0_pvp<\/USR>let item: AnyLocalizedCollatableItem<\/Declaration>The item backing the provider, to vend the collationString<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 177,
                 "key.doc.name" : "item",
                 "key.doc.type" : "Other",
                 "key.doclength" : 66,
                 "key.docoffset" : 6016,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> item<\/decl.name>: AnyLocalizedCollatableItem<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 37,
@@ -64983,14 +67204,14 @@
                 "key.doc.column" : 19,
                 "key.doc.comment" : "The string used to collate all items.",
                 "key.doc.declaration" : "@objc let collationString: String",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-                "key.doc.full_as_xml" : "collationString<\/Name>s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC15collationStringSSvp<\/USR>@objc let collationString: String<\/Declaration>The string used to collate all items.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.doc.full_as_xml" : "collationString<\/Name>s:10ListableUI21LocalizedItemCollatorV8Provider33_7EA791928592DFF016E56E231602D101LLC15collationStringSSvp<\/USR>@objc let collationString: String<\/Declaration>The string used to collate all items.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 180,
                 "key.doc.name" : "collationString",
                 "key.doc.type" : "Other",
                 "key.doclength" : 42,
                 "key.docoffset" : 6145,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "@objc<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> let<\/syntaxtype.keyword> collationString<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 28,
@@ -65010,7 +67231,7 @@
                 "key.annotated_decl" : "init(item: AnyLocalizedCollatableItem<\/Type>)<\/Declaration>",
                 "key.bodylength" : 99,
                 "key.bodyoffset" : 6287,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(item<\/decl.var.parameter.argument_label>: AnyLocalizedCollatableItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 140,
@@ -65061,12 +67282,12 @@
             "Para" : "If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc)."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-        "key.doc.full_as_xml" : "LocalizedItemCollator<\/Name>s:10ListableUI21LocalizedItemCollatorV<\/USR>public struct LocalizedItemCollator<\/Declaration>If you’re looking for the equivalent of UILocalizedIndexedCollation<\/codeVoice> for lists, you have come to the right place.<\/Para><\/Abstract>LocalizedItemCollator<\/codeVoice> takes in a list of unsorted content, and sorts and then partitions the content into sections, returning you a list of collated sections for display.<\/Para>Just like UILocalizedIndexedCollation<\/codeVoice>, LocalizedItemCollator<\/codeVoice> takes into account the localization settings of the device, using different collation for the various supported iOS languages.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Warning]]><\/rawHTML>Sorting and partitioning thousands and thousands of Items<\/codeVoice> each time a list updates can be expensive, especially on slower devices.<\/Para>If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc).<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+        "key.doc.full_as_xml" : "LocalizedItemCollator<\/Name>s:10ListableUI21LocalizedItemCollatorV<\/USR>public struct LocalizedItemCollator<\/Declaration>If you’re looking for the equivalent of UILocalizedIndexedCollation<\/codeVoice> for lists, you have come to the right place.<\/Para><\/Abstract>LocalizedItemCollator<\/codeVoice> takes in a list of unsorted content, and sorts and then partitions the content into sections, returning you a list of collated sections for display.<\/Para>Just like UILocalizedIndexedCollation<\/codeVoice>, LocalizedItemCollator<\/codeVoice> takes into account the localization settings of the device, using different collation for the various supported iOS languages.<\/Para>]]><\/rawHTML>Example]]><\/rawHTML><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Warning]]><\/rawHTML>Sorting and partitioning thousands and thousands of Items<\/codeVoice> each time a list updates can be expensive, especially on slower devices.<\/Para>If you have a list that you wish to collate that may contain thousands of items, it is recommended that you store the list pre-collated outside of Listable, so each recreation of the list’s view model does not re-partake in an expensive sort operation. Instead only re-collate when the underlying list receives an update (from Core Data, an API callback, etc).<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 83,
         "key.doc.name" : "LocalizedItemCollator",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> LocalizedItemCollator<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 557,
@@ -65093,14 +67314,14 @@
             "key.doc.column" : 19,
             "key.doc.comment" : "The output of the collator, with the collated title and items\nthat should be added to a given section.",
             "key.doc.declaration" : "public struct CollatedSection",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-            "key.doc.full_as_xml" : "CollatedSection<\/Name>s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV<\/USR>public struct CollatedSection<\/Declaration>The output of the collator, with the collated title and items that should be added to a given section.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.doc.full_as_xml" : "CollatedSection<\/Name>s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV<\/USR>public struct CollatedSection<\/Declaration>The output of the collator, with the collated title and items that should be added to a given section.<\/Para><\/Abstract><\/CommentParts><\/Class>",
             "key.doc.line" : 194,
             "key.doc.name" : "CollatedSection",
             "key.doc.type" : "Class",
             "key.doclength" : 115,
             "key.docoffset" : 6441,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> CollatedSection<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 386,
@@ -65125,14 +67346,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "The title of section – a single letter like A, B, C, D, E, etc.\nLocalized depending on locale.\nSee https:\/\/nshipster.com\/uilocalizedindexedcollation\/ for more examples.",
                 "key.doc.declaration" : "public var title: String",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-                "key.doc.full_as_xml" : "title<\/Name>s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5titleSSvp<\/USR>public var title: String<\/Declaration>The title of section – a single letter like A, B, C, D, E, etc. Localized depending on locale. See https:\/\/nshipster.com\/uilocalizedindexedcollation\/ for more examples.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.doc.full_as_xml" : "title<\/Name>s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5titleSSvp<\/USR>public var title: String<\/Declaration>The title of section – a single letter like A, B, C, D, E, etc. Localized depending on locale. See https:\/\/nshipster.com\/uilocalizedindexedcollation\/ for more examples.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 199,
                 "key.doc.name" : "title",
                 "key.doc.type" : "Other",
                 "key.doclength" : 199,
                 "key.docoffset" : 6609,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> title<\/decl.name>: String<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
@@ -65161,14 +67382,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "The sorted items in the collated sections.",
                 "key.doc.declaration" : "public var items: [AnyItem]",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
-                "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5itemsSayAA03AnyD0_pGvp<\/USR>public var items: [AnyItem]<\/Declaration>The sorted items in the collated sections.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5itemsSayAA03AnyD0_pGvp<\/USR>public var items: [AnyItem]<\/Declaration>The sorted items in the collated sections.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 202,
                 "key.doc.name" : "items",
                 "key.doc.type" : "Other",
                 "key.doclength" : 47,
                 "key.docoffset" : 6859,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> items<\/decl.name>: [AnyItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 26,
@@ -65208,7 +67429,7 @@
             "key.offset" : 7140
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Item\/Item.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Item\/Item.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Item<\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>> : AnyItem where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -65237,7 +67458,7 @@
             ],
             "key.bodylength" : 42,
             "key.bodyoffset" : 7261,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/LocalizedItemCollator.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/LocalizedItemCollator.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> collationString<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 72,
@@ -65265,7 +67486,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 5767,
     "key.offset" : 0,
@@ -65298,8 +67519,8 @@
             "CodeListing" : ""
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-        "key.doc.full_as_xml" : "ItemPreview<\/Name>s:10ListableUI11ItemPreviewV<\/USR>@available(iOS 13.0, *)\npublic struct ItemPreview : View<\/Declaration>A SwiftUI view that you can use to preview your Item<\/codeVoice> or ItemContent<\/codeVoice> with Xcode’s built in preview functionality.<\/Para><\/Abstract>Place code similar to the below in your source file alongside your ItemContent<\/codeVoice>, and then open the Xcode editor’s canvas.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+        "key.doc.full_as_xml" : "ItemPreview<\/Name>s:10ListableUI11ItemPreviewV<\/USR>@available(iOS 13.0, *)\npublic struct ItemPreview : View<\/Declaration>A SwiftUI view that you can use to preview your Item<\/codeVoice> or ItemContent<\/codeVoice> with Xcode’s built in preview functionality.<\/Para><\/Abstract>Place code similar to the below in your source file alongside your ItemContent<\/codeVoice>, and then open the Xcode editor’s canvas.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 35,
         "key.doc.name" : "ItemPreview",
         "key.doc.type" : "Class",
@@ -65312,7 +67533,7 @@
             "key.offset" : 808
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemPreview<\/decl.name> : View<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -65342,14 +67563,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The item being previewed by the preview.",
             "key.doc.declaration" : "public var item: AnyItem",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-            "key.doc.full_as_xml" : "item<\/Name>s:10ListableUI11ItemPreviewV4itemAA03AnyC0_pvp<\/USR>public var item: AnyItem<\/Declaration>The item being previewed by the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.doc.full_as_xml" : "item<\/Name>s:10ListableUI11ItemPreviewV4itemAA03AnyC0_pvp<\/USR>public var item: AnyItem<\/Declaration>The item being previewed by the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 38,
             "key.doc.name" : "item",
             "key.doc.type" : "Other",
             "key.doclength" : 45,
             "key.docoffset" : 819,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 18,
@@ -65378,14 +67599,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The properties of the current preview.",
             "key.doc.declaration" : "public var properties: Properties",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-            "key.doc.full_as_xml" : "properties<\/Name>s:10ListableUI11ItemPreviewV10propertiesAC10PropertiesVvp<\/USR>public var properties: Properties<\/Declaration>The properties of the current preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.doc.full_as_xml" : "properties<\/Name>s:10ListableUI11ItemPreviewV10propertiesAC10PropertiesVvp<\/USR>public var properties: Properties<\/Declaration>The properties of the current preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 41,
             "key.doc.name" : "properties",
             "key.doc.type" : "Other",
             "key.doclength" : 43,
             "key.docoffset" : 903,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> properties<\/decl.name>: Properties<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
@@ -65416,14 +67637,14 @@
             "key.doc.column" : 19,
             "key.doc.comment" : "The properties of a preview.",
             "key.doc.declaration" : "public struct ListableUI.ItemPreview.Properties",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-            "key.doc.full_as_xml" : "Properties<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV<\/USR>public struct ListableUI.ItemPreview.Properties<\/Declaration>The properties of a preview.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.doc.full_as_xml" : "Properties<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV<\/USR>public struct ListableUI.ItemPreview.Properties<\/Declaration>The properties of a preview.<\/Para><\/Abstract><\/CommentParts><\/Class>",
             "key.doc.line" : 44,
             "key.doc.name" : "Properties",
             "key.doc.type" : "Class",
             "key.doclength" : 33,
             "key.docoffset" : 994,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemPreview<\/ref.struct>.Properties<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 710,
@@ -65448,14 +67669,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "The width of the preview.",
                 "key.doc.declaration" : "public var width: CGFloat",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-                "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV5width12CoreGraphics7CGFloatVvp<\/USR>public var width: CGFloat<\/Declaration>The width of the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.doc.full_as_xml" : "width<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV5width12CoreGraphics7CGFloatVvp<\/USR>public var width: CGFloat<\/Declaration>The width of the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 47,
                 "key.doc.name" : "width",
                 "key.doc.type" : "Other",
                 "key.doclength" : 30,
                 "key.docoffset" : 1070,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
@@ -65484,14 +67705,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "The `ItemState` to use in the preview.",
                 "key.doc.declaration" : "public var state: ItemState",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-                "key.doc.full_as_xml" : "state<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV5stateAA0C5StateVvp<\/USR>public var state: ItemState<\/Declaration>The ItemState<\/codeVoice> to use in the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.doc.full_as_xml" : "state<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV5stateAA0C5StateVvp<\/USR>public var state: ItemState<\/Declaration>The ItemState<\/codeVoice> to use in the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 49,
                 "key.doc.name" : "state",
                 "key.doc.type" : "Other",
                 "key.doclength" : 43,
                 "key.docoffset" : 1143,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> state<\/decl.name>: ItemState<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 21,
@@ -65520,14 +67741,14 @@
                 "key.doc.column" : 20,
                 "key.doc.comment" : "The desired appearance of the preview.",
                 "key.doc.declaration" : "public var appearance: ItemPreviewAppearance",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-                "key.doc.full_as_xml" : "appearance<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV10appearanceAA0cD10AppearanceVvp<\/USR>public var appearance: ItemPreviewAppearance<\/Declaration>The desired appearance of the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.doc.full_as_xml" : "appearance<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV10appearanceAA0cD10AppearanceVvp<\/USR>public var appearance: ItemPreviewAppearance<\/Declaration>The desired appearance of the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 51,
                 "key.doc.name" : "appearance",
                 "key.doc.type" : "Other",
                 "key.doclength" : 43,
                 "key.docoffset" : 1231,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> appearance<\/decl.name>: ItemPreviewAppearance<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 38,
@@ -65558,14 +67779,14 @@
                 "key.doc.column" : 16,
                 "key.doc.comment" : "Creates a new preview with the desired options.",
                 "key.doc.declaration" : "public init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init())",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-                "key.doc.full_as_xml" : "init(with:state:appearance:)<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV4with5state10appearanceAE12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVtcfc<\/USR>public init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init())<\/Declaration>Creates a new preview with the desired options.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.doc.full_as_xml" : "init(with:state:appearance:)<\/Name>s:10ListableUI11ItemPreviewV10PropertiesV4with5state10appearanceAE12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVtcfc<\/USR>public init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init())<\/Declaration>Creates a new preview with the desired options.<\/Para><\/Abstract><\/CommentParts><\/Function>",
                 "key.doc.line" : 54,
                 "key.doc.name" : "init(with:state:appearance:)",
                 "key.doc.type" : "Function",
                 "key.doclength" : 52,
                 "key.docoffset" : 1345,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, state<\/decl.var.parameter.argument_label>: ItemState<\/ref.struct><\/decl.var.parameter.type> = .init(isSelected: false, isHighlighted: false)<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 330,
@@ -65603,14 +67824,14 @@
             "key.doc.column" : 24,
             "key.doc.comment" : "Creates and returns a SwiftUI view that contains individual previews for each of the provided\nproperties. Use this if you'd like to preview your `Item` across multiple sizes, states, etc.",
             "key.doc.declaration" : "public static func previews(for item: AnyItem, with properties: [Properties]) -> some View",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-            "key.doc.full_as_xml" : "previews(for:with:)<\/Name>s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ<\/USR>public static func previews(for item: AnyItem, with properties: [Properties]) -> some View<\/Declaration>Creates and returns a SwiftUI view that contains individual previews for each of the provided properties. Use this if you’d like to preview your Item<\/codeVoice> across multiple sizes, states, etc.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.doc.full_as_xml" : "previews(for:with:)<\/Name>s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ<\/USR>public static func previews(for item: AnyItem, with properties: [Properties]) -> some View<\/Declaration>Creates and returns a SwiftUI view that contains individual previews for each of the provided properties. Use this if you’d like to preview your Item<\/codeVoice> across multiple sizes, states, etc.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 67,
             "key.doc.name" : "previews(for:with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 200,
             "key.docoffset" : 1758,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> previews<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> properties<\/decl.var.parameter.name>: [Properties<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>) -> some<\/syntaxtype.keyword> View<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 782,
@@ -65627,7 +67848,7 @@
                 "key.annotated_decl" : "struct PreviewsItem<\/Declaration>",
                 "key.bodylength" : 264,
                 "key.bodyoffset" : 2098,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> PreviewsItem<\/decl.name><\/decl.struct>",
                 "key.kind" : "source.lang.swift.decl.struct",
                 "key.length" : 294,
@@ -65642,7 +67863,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var item: AnyItem<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 18,
@@ -65661,7 +67882,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var properties: Properties<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> properties<\/decl.name>: Properties<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 27,
@@ -65680,7 +67901,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.internal",
                     "key.annotated_decl" : "var identifier: Identifier<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                     "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                     "key.kind" : "source.lang.swift.decl.var.instance",
                     "key.length" : 27,
@@ -65708,7 +67929,7 @@
                         "key.offset" : 2260
                       }
                     ],
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                     "key.fully_annotated_decl" : "struct<\/syntaxtype.keyword> PreviewsItem<\/ref.struct>.Identifier<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
                     "key.inheritedtypes" : [
                       {
@@ -65728,7 +67949,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.internal",
                         "key.annotated_decl" : "var index: Int<\/Type><\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                         "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> index<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                         "key.kind" : "source.lang.swift.decl.var.instance",
                         "key.length" : 15,
@@ -65747,7 +67968,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.internal",
                         "key.annotated_decl" : "var totalCount: Int<\/Type><\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                         "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> totalCount<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                         "key.kind" : "source.lang.swift.decl.var.instance",
                         "key.length" : 20,
@@ -65775,7 +67996,7 @@
               },
               {
                 "key.annotated_decl" : "let previewsItems: [PreviewsItem<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> previewsItems<\/decl.name>: [PreviewsItem<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 230,
@@ -65815,14 +68036,14 @@
                 "CodeListing" : ""
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-            "key.doc.full_as_xml" : "withAllItemStates(for:width:appearance:)<\/Name>s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_12CoreGraphics7CGFloatVAA0cD10AppearanceVtFZ<\/USR>public static func withAllItemStates(for item: AnyItem, width: CGFloat = UIScreen.main.bounds.width, appearance: ItemPreviewAppearance = .init()) -> some View<\/Declaration>Creates and returns a SwiftUI view that contains individual previews for all the possible states of ItemState<\/codeVoice>. This allows you to see your Item<\/codeVoice> across the possible selected and highlighted states it can appear in:<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.doc.full_as_xml" : "withAllItemStates(for:width:appearance:)<\/Name>s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_12CoreGraphics7CGFloatVAA0cD10AppearanceVtFZ<\/USR>public static func withAllItemStates(for item: AnyItem, width: CGFloat = UIScreen.main.bounds.width, appearance: ItemPreviewAppearance = .init()) -> some View<\/Declaration>Creates and returns a SwiftUI view that contains individual previews for all the possible states of ItemState<\/codeVoice>. This allows you to see your Item<\/codeVoice> across the possible selected and highlighted states it can appear in:<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Function>",
             "key.doc.line" : 105,
             "key.doc.name" : "withAllItemStates(for:width:appearance:)",
             "key.doc.type" : "Function",
             "key.doclength" : 458,
             "key.docoffset" : 2761,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> withAllItemStates<\/decl.name>(for<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>) -> some<\/syntaxtype.keyword> View<\/ref.protocol><\/decl.function.returntype><\/decl.function.method.static>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 645,
@@ -65836,7 +68057,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let states: [ItemState<\/Type>]<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> states<\/decl.name>: [ItemState<\/ref.struct>]<\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 290,
@@ -65879,14 +68100,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a new preview with the provided properties.",
             "key.doc.declaration" : "public init(_ item: AnyItem, width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init())",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-            "key.doc.full_as_xml" : "init(_:width:state:appearance:)<\/Name>s:10ListableUI11ItemPreviewV_5width5state10appearanceAcA03AnyC0_p_12CoreGraphics7CGFloatVAA0C5StateVAA0cD10AppearanceVtcfc<\/USR>public init(_ item: AnyItem, width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init())<\/Declaration>Creates a new preview with the provided properties.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.doc.full_as_xml" : "init(_:width:state:appearance:)<\/Name>s:10ListableUI11ItemPreviewV_5width5state10appearanceAcA03AnyC0_p_12CoreGraphics7CGFloatVAA0C5StateVAA0cD10AppearanceVtcfc<\/USR>public init(_ item: AnyItem, width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init())<\/Declaration>Creates a new preview with the provided properties.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 128,
             "key.doc.name" : "init(_:width:state:appearance:)",
             "key.doc.type" : "Function",
             "key.doclength" : 56,
             "key.docoffset" : 3932,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, state<\/decl.var.parameter.argument_label>: ItemState<\/ref.struct><\/decl.var.parameter.type> = .init(isSelected: false, isHighlighted: false)<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 423,
@@ -65924,14 +68145,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a new preview with the provided properties.",
             "key.doc.declaration" : "public init(_ item: AnyItem, properties: Properties)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
-            "key.doc.full_as_xml" : "init(_:properties:)<\/Name>s:10ListableUI11ItemPreviewV_10propertiesAcA03AnyC0_p_AC10PropertiesVtcfc<\/USR>public init(_ item: AnyItem, properties: Properties)<\/Declaration>Creates a new preview with the provided properties.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.doc.full_as_xml" : "init(_:properties:)<\/Name>s:10ListableUI11ItemPreviewV_10propertiesAcA03AnyC0_p_AC10PropertiesVtcfc<\/USR>public init(_ item: AnyItem, properties: Properties)<\/Declaration>Creates a new preview with the provided properties.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 145,
             "key.doc.name" : "init(_:properties:)",
             "key.doc.type" : "Function",
             "key.doclength" : 56,
             "key.docoffset" : 4432,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>, properties<\/decl.var.parameter.argument_label>: Properties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 148,
@@ -65983,7 +68204,7 @@
             "key.doc.full_as_xml" : "body<\/Name>s:7SwiftUI4ViewP4body4BodyQzvp<\/USR>@ViewBuilder var body: Self.Body { get }<\/Declaration>The content and behavior of the view.<\/Para><\/Abstract>This documentation comment was inherited from View<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.name" : "body",
             "key.doc.type" : "Other",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> body<\/decl.name>: some<\/syntaxtype.keyword> View<\/ref.protocol><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 233,
@@ -66015,7 +68236,7 @@
             ],
             "key.bodylength" : 114,
             "key.bodyoffset" : 4993,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> previewDisplayName<\/decl.name>: String<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 148,
@@ -66049,7 +68270,7 @@
                 "key.offset" : 5154
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemPreview<\/ref.struct>.ItemPreviewWrapper<\/decl.name> : UIViewRepresentable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -66076,7 +68297,7 @@
                     "key.offset" : 5188
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: AnyItem<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 18,
@@ -66102,7 +68323,7 @@
                     "key.offset" : 5222
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> properties<\/decl.name>: Properties<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 27,
@@ -66137,7 +68358,7 @@
                 "key.doc.full_as_xml" : "UIViewType<\/Name>s:7SwiftUI19UIViewRepresentableP0C4TypeQa<\/USR>associatedtype UIViewType : UIView<\/Declaration>The type of view to present.<\/Para><\/Abstract>This documentation comment was inherited from UIViewRepresentable<\/codeVoice>.<\/Para><\/Note><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.name" : "UIViewType",
                 "key.doc.type" : "Other",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> ItemPreview<\/ref.struct>.ItemPreviewWrapper<\/ref.struct>.UIViewType<\/decl.name> = ItemPreviewView<\/ref.class><\/decl.typealias>",
                 "key.kind" : "source.lang.swift.decl.typealias",
                 "key.length" : 38,
@@ -66196,7 +68417,7 @@
                   }
                 ],
                 "key.doc.type" : "Function",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> makeUIView<\/decl.name>(context<\/decl.var.parameter.argument_label>: Context<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> UIViewType<\/ref.typealias><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 96,
@@ -66261,7 +68482,7 @@
                   }
                 ],
                 "key.doc.type" : "Function",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreview.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> updateUIView<\/decl.name>(_<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIViewType<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>, context<\/decl.var.parameter.argument_label>: Context<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 285,
@@ -66297,9 +68518,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 962,
+    "key.length" : 963,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -66312,13 +68533,13 @@
             "key.offset" : 161
           }
         ],
-        "key.bodylength" : 750,
+        "key.bodylength" : 751,
         "key.bodyoffset" : 210,
         "key.doc.column" : 15,
         "key.doc.comment" : "The appearance options for a preview item.",
         "key.doc.declaration" : "public struct ItemPreviewAppearance : Equatable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
-        "key.doc.full_as_xml" : "ItemPreviewAppearance<\/Name>s:10ListableUI21ItemPreviewAppearanceV<\/USR>public struct ItemPreviewAppearance : Equatable<\/Declaration>The appearance options for a preview item.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
+        "key.doc.full_as_xml" : "ItemPreviewAppearance<\/Name>s:10ListableUI21ItemPreviewAppearanceV<\/USR>public struct ItemPreviewAppearance : Equatable<\/Declaration>The appearance options for a preview item.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 12,
         "key.doc.name" : "ItemPreviewAppearance",
         "key.doc.type" : "Class",
@@ -66331,7 +68552,7 @@
             "key.offset" : 199
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ItemPreviewAppearance<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -66339,7 +68560,7 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 793,
+        "key.length" : 794,
         "key.name" : "ItemPreviewAppearance",
         "key.namelength" : 21,
         "key.nameoffset" : 175,
@@ -66354,14 +68575,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "The padding to show around an item.",
             "key.doc.declaration" : "var padding: CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
-            "key.doc.full_as_xml" : "padding<\/Name>s:10ListableUI21ItemPreviewAppearanceV7padding12CoreGraphics7CGFloatVvp<\/USR>var padding: CGFloat<\/Declaration>The padding to show around an item.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
+            "key.doc.full_as_xml" : "padding<\/Name>s:10ListableUI21ItemPreviewAppearanceV7padding12CoreGraphics7CGFloatVvp<\/USR>var padding: CGFloat<\/Declaration>The padding to show around an item.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 15,
             "key.doc.name" : "padding",
             "key.doc.type" : "Other",
             "key.doclength" : 40,
             "key.docoffset" : 215,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> padding<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
@@ -66383,14 +68604,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "The background color to show behind an item.\nDefaults to white.",
             "key.doc.declaration" : "var backgroundColor: UIColor",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
-            "key.doc.full_as_xml" : "backgroundColor<\/Name>s:10ListableUI21ItemPreviewAppearanceV15backgroundColorSo7UIColorCvp<\/USR>var backgroundColor: UIColor<\/Declaration>The background color to show behind an item. Defaults to white.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
+            "key.doc.full_as_xml" : "backgroundColor<\/Name>s:10ListableUI21ItemPreviewAppearanceV15backgroundColorSo7UIColorCvp<\/USR>var backgroundColor: UIColor<\/Declaration>The background color to show behind an item. Defaults to white.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 19,
             "key.doc.name" : "backgroundColor",
             "key.doc.type" : "Other",
             "key.doclength" : 76,
             "key.docoffset" : 290,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> backgroundColor<\/decl.name>: UIColor<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
@@ -66421,14 +68642,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a new preview appearance.",
             "key.doc.declaration" : "public init(padding: CGFloat = 20.0, backgroundColor: UIColor = .white)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
-            "key.doc.full_as_xml" : "init(padding:backgroundColor:)<\/Name>s:10ListableUI21ItemPreviewAppearanceV7padding15backgroundColorAC12CoreGraphics7CGFloatV_So7UIColorCtcfc<\/USR>public init(padding: CGFloat = 20.0, backgroundColor: UIColor = .white)<\/Declaration>Creates a new preview appearance.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
+            "key.doc.full_as_xml" : "init(padding:backgroundColor:)<\/Name>s:10ListableUI21ItemPreviewAppearanceV7padding15backgroundColorAC12CoreGraphics7CGFloatV_So7UIColorCtcfc<\/USR>public init(padding: CGFloat = 20.0, backgroundColor: UIColor = .white)<\/Declaration>Creates a new preview appearance.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 22,
             "key.doc.name" : "init(padding:backgroundColor:)",
             "key.doc.type" : "Function",
             "key.doclength" : 38,
             "key.docoffset" : 409,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(padding<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 20.0<\/decl.var.parameter>, backgroundColor<\/decl.var.parameter.argument_label>: UIColor<\/ref.class><\/decl.var.parameter.type> = .white<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 174,
@@ -66449,12 +68670,12 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func configure(list properties: inout ListProperties<\/Type>)<\/Declaration>",
-            "key.bodylength" : 256,
+            "key.bodylength" : 257,
             "key.bodyoffset" : 702,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewAppearance.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> configure<\/decl.name>(list<\/decl.var.parameter.argument_label> properties<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> ListProperties<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 317,
+            "key.length" : 318,
             "key.name" : "configure(list:)",
             "key.namelength" : 49,
             "key.nameoffset" : 647,
@@ -66477,7 +68698,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 4122,
     "key.offset" : 0,
@@ -66513,8 +68734,8 @@
             "Para" : "This view sizes itself to fit the provided `Item` when you call its `view.update(..)` method. You do not need to call `layoutIfNeeded()` or `sizeToFit()`, etc, to properly size and lay out the view."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
-        "key.doc.full_as_xml" : "ItemPreviewView<\/Name>c:@M@ListableUI@objc(cs)ItemPreviewView<\/USR>public final class ItemPreviewView : UIView<\/Declaration>A view you can use to test the various possible states that your ItemContent<\/codeVoice> can be in.<\/Para><\/Abstract>This view is usually used alongside snapshot tests, to capture your ItemContent<\/codeVoice> in its selected or highlighted, or to see how it reacts to different sizing configuration.<\/Para>If you’d like to use this view alongside Xcode previews, see ItemPreview<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This view sizes itself to fit the provided Item<\/codeVoice> when you call its view.update(..)<\/codeVoice> method. You do not need to call layoutIfNeeded()<\/codeVoice> or sizeToFit()<\/codeVoice>, etc, to properly size and lay out the view.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+        "key.doc.full_as_xml" : "ItemPreviewView<\/Name>c:@M@ListableUI@objc(cs)ItemPreviewView<\/USR>public final class ItemPreviewView : UIView<\/Declaration>A view you can use to test the various possible states that your ItemContent<\/codeVoice> can be in.<\/Para><\/Abstract>This view is usually used alongside snapshot tests, to capture your ItemContent<\/codeVoice> in its selected or highlighted, or to see how it reacts to different sizing configuration.<\/Para>If you’d like to use this view alongside Xcode previews, see ItemPreview<\/codeVoice>.<\/Para>]]><\/rawHTML>Note]]><\/rawHTML>This view sizes itself to fit the provided Item<\/codeVoice> when you call its view.update(..)<\/codeVoice> method. You do not need to call layoutIfNeeded()<\/codeVoice> or sizeToFit()<\/codeVoice>, etc, to properly size and lay out the view.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 25,
         "key.doc.name" : "ItemPreviewView",
         "key.doc.type" : "Class",
@@ -66527,7 +68748,7 @@
             "key.offset" : 748
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ItemPreviewView<\/decl.name> : UIView<\/ref.class><\/decl.class>",
         "key.inheritedtypes" : [
           {
@@ -66557,14 +68778,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "The list used to render the content.",
             "key.doc.declaration" : "private let listView: ListView",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
-            "key.doc.full_as_xml" : "listView<\/Name>s:10ListableUI15ItemPreviewViewC04listE033_0518A7150E42BD8A8926F15465CA97DDLLAA04ListE0Cvp<\/USR>private let listView: ListView<\/Declaration>The list used to render the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.doc.full_as_xml" : "listView<\/Name>s:10ListableUI15ItemPreviewViewC04listE033_0518A7150E42BD8A8926F15465CA97DDLLAA04ListE0Cvp<\/USR>private let listView: ListView<\/Declaration>The list used to render the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 28,
             "key.doc.name" : "listView",
             "key.doc.type" : "Other",
             "key.doclength" : 41,
             "key.docoffset" : 768,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> let<\/syntaxtype.keyword> listView<\/decl.name>: ListView<\/ref.class><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -66602,14 +68823,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a preview for the given width.",
             "key.doc.declaration" : "public init()",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
-            "key.doc.full_as_xml" : "init()<\/Name>c:@M@ListableUI@objc(cs)ItemPreviewView(im)init<\/USR>public init()<\/Declaration>Creates a preview for the given width.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.doc.full_as_xml" : "init()<\/Name>c:@M@ListableUI@objc(cs)ItemPreviewView(im)init<\/USR>public init()<\/Declaration>Creates a preview for the given width.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 35,
             "key.doc.name" : "init()",
             "key.doc.type" : "Function",
             "key.doclength" : 43,
             "key.docoffset" : 901,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 292,
@@ -66657,14 +68878,14 @@
             "key.doc.column" : 24,
             "key.doc.comment" : "Creates a preview for the given item and parameters, and then lays out the preview view.",
             "key.doc.declaration" : "public convenience init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
-            "key.doc.full_as_xml" : "init(with:state:appearance:item:)<\/Name>s:10ListableUI15ItemPreviewViewC4with5state10appearance4itemAC12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptcfc<\/USR>public convenience init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)<\/Declaration>Creates a preview for the given item and parameters, and then lays out the preview view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.doc.full_as_xml" : "init(with:state:appearance:item:)<\/Name>s:10ListableUI15ItemPreviewViewC4with5state10appearance4itemAC12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptcfc<\/USR>public convenience init(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)<\/Declaration>Creates a preview for the given item and parameters, and then lays out the preview view.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 48,
             "key.doc.name" : "init(with:state:appearance:item:)",
             "key.doc.type" : "Function",
             "key.doclength" : 93,
             "key.docoffset" : 1257,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> convenience<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, state<\/decl.var.parameter.argument_label>: ItemState<\/ref.struct><\/decl.var.parameter.type> = .init(isSelected: false, isHighlighted: false)<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 343,
@@ -66710,14 +68931,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Updates the item for the given parameters.\nThis method changes the view's size; you dont need to resize the view after setting an item.",
             "key.doc.declaration" : "public func update(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
-            "key.doc.full_as_xml" : "update(with:state:appearance:item:)<\/Name>s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF<\/USR>public func update(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)<\/Declaration>Updates the item for the given parameters. This method changes the view’s size; you dont need to resize the view after setting an item.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.doc.full_as_xml" : "update(with:state:appearance:item:)<\/Name>s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF<\/USR>public func update(with width: CGFloat = UIScreen.main.bounds.width, state: ItemState = .init(isSelected: false, isHighlighted: false), appearance: ItemPreviewAppearance = .init(), item: AnyItem)<\/Declaration>Updates the item for the given parameters. This method changes the view’s size; you dont need to resize the view after setting an item.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 65,
             "key.doc.name" : "update(with:state:appearance:item:)",
             "key.doc.type" : "Function",
             "key.doclength" : 148,
             "key.docoffset" : 1774,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> update<\/decl.name>(with<\/decl.var.parameter.argument_label> width<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = UIScreen.main.bounds.width<\/decl.var.parameter>, state<\/decl.var.parameter.argument_label>: ItemState<\/ref.struct><\/decl.var.parameter.type> = .init(isSelected: false, isHighlighted: false)<\/decl.var.parameter>, appearance<\/decl.var.parameter.argument_label>: ItemPreviewAppearance<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, item<\/decl.var.parameter.argument_label>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1707,
@@ -66734,14 +68955,14 @@
                 "key.doc.column" : 13,
                 "key.doc.comment" : "Update the cell for the preview.",
                 "key.doc.declaration" : "let indexPath: IndexPath",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
-                "key.doc.full_as_xml" : "indexPath<\/Name>s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF9indexPathL_10Foundation05IndexR0Vvp<\/USR>let indexPath: IndexPath<\/Declaration>Update the cell for the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+                "key.doc.full_as_xml" : "indexPath<\/Name>s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF9indexPathL_10Foundation05IndexR0Vvp<\/USR>let indexPath: IndexPath<\/Declaration>Update the cell for the preview.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 96,
                 "key.doc.name" : "indexPath",
                 "key.doc.type" : "Other",
                 "key.doclength" : 37,
                 "key.docoffset" : 3006,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> indexPath<\/decl.name>: IndexPath<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 46,
@@ -66758,7 +68979,7 @@
               },
               {
                 "key.annotated_decl" : "let presentationState: AnyPresentationItemState<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> presentationState<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 83,
@@ -66830,7 +69051,7 @@
             ],
             "key.bodylength" : 95,
             "key.bodyoffset" : 3812,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> layoutSubviews<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 119,
@@ -66870,7 +69091,7 @@
             ],
             "key.bodylength" : 39,
             "key.bodyoffset" : 3979,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> func<\/syntaxtype.keyword> sizeThatFits<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 85,
@@ -66910,7 +69131,7 @@
             ],
             "key.bodylength" : 39,
             "key.bodyoffset" : 4079,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Previews\/ItemPreviewView.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> override<\/syntaxtype.keyword> var<\/syntaxtype.keyword> intrinsicContentSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 74,
@@ -66938,7 +69159,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 814,
     "key.offset" : 0,
@@ -66955,7 +69176,7 @@
         ],
         "key.bodylength" : 522,
         "key.bodyoffset" : 141,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> RefreshControl<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 546,
@@ -66977,7 +69198,7 @@
                 "key.offset" : 146
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> isRefreshing<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -67003,7 +69224,7 @@
                 "key.offset" : 186
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> title<\/decl.name>: Title<\/ref.enum>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 18,
@@ -67029,7 +69250,7 @@
                 "key.offset" : 221
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> tintColor<\/decl.name>: UIColor<\/ref.class>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 24,
@@ -67055,7 +69276,7 @@
                 "key.offset" : 262
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> RefreshControl<\/ref.struct>.OnRefresh<\/decl.name> = () -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 30,
@@ -67080,7 +69301,7 @@
                 "key.offset" : 304
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> onRefresh<\/decl.name>: OnRefresh<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 25,
@@ -67108,7 +69329,7 @@
             ],
             "key.bodylength" : 153,
             "key.bodyoffset" : 508,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(isRefreshing<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, title<\/decl.var.parameter.argument_label>: Title<\/ref.enum>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, tintColor<\/decl.var.parameter.argument_label>: UIColor<\/ref.class>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, onRefresh<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> OnRefresh<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 309,
@@ -67135,7 +69356,7 @@
         "key.annotated_decl" : "public struct RefreshControl<\/Declaration>",
         "key.bodylength" : 119,
         "key.bodyoffset" : 693,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> RefreshControl<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 146,
@@ -67166,7 +69387,7 @@
                 "key.offset" : 718
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Title<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -67193,7 +69414,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case string(String<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> string<\/decl.name>(String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 14,
@@ -67223,7 +69444,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case attributed(NSAttributedString<\/Type>)<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/RefreshControl.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/RefreshControl.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> attributed<\/decl.name>(NSAttributedString<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 30,
@@ -67256,7 +69477,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 1451,
     "key.offset" : 0,
@@ -67278,7 +69499,7 @@
         ],
         "key.bodylength" : 1021,
         "key.bodyoffset" : 135,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> final<\/syntaxtype.keyword> class<\/syntaxtype.keyword> ReorderingActions<\/decl.name><\/decl.class>",
         "key.kind" : "source.lang.swift.decl.class",
         "key.length" : 1047,
@@ -67305,7 +69526,7 @@
                 "key.offset" : 140
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> private<\/syntaxtype.keyword>(set) var<\/syntaxtype.keyword> isMoving<\/decl.name>: Bool<\/ref.struct><\/decl.var.type> { get }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -67336,7 +69557,7 @@
                 "key.offset" : 189
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> item<\/decl.name>: AnyPresentationItemState<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 36,
@@ -67367,7 +69588,7 @@
                 "key.offset" : 244
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "internal<\/syntaxtype.keyword> weak<\/syntaxtype.keyword> var<\/syntaxtype.keyword> delegate<\/decl.name>: ReorderingActionsDelegate<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
@@ -67388,7 +69609,7 @@
             "key.annotated_decl" : "init()<\/Declaration>",
             "key.bodylength" : 35,
             "key.bodyoffset" : 321,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>()<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 48,
@@ -67415,7 +69636,7 @@
             ],
             "key.bodylength" : 314,
             "key.bodyoffset" : 406,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> beginMoving<\/decl.name>() -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 347,
@@ -67445,7 +69666,7 @@
             ],
             "key.bodylength" : 159,
             "key.bodyoffset" : 796,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> moved<\/decl.name>(with<\/decl.var.parameter.argument_label> recognizer<\/decl.var.parameter.name>: UIPanGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 218,
@@ -67475,7 +69696,7 @@
             ],
             "key.bodylength" : 165,
             "key.bodyoffset" : 989,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> end<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 182,
@@ -67510,7 +69731,7 @@
             "key.offset" : 1197
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
         "key.fully_annotated_decl" : "protocol<\/syntaxtype.keyword> ReorderingActionsDelegate<\/decl.name> : AnyObject<\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -67530,7 +69751,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func beginInteractiveMovementFor(item: AnyPresentationItemState<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> beginInteractiveMovementFor<\/decl.name>(item<\/decl.var.parameter.argument_label>: AnyPresentationItemState<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 73,
@@ -67551,7 +69772,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func updateInteractiveMovementTargetPosition(with recognizer: UIPanGestureRecognizer<\/Type>)<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> updateInteractiveMovementTargetPosition<\/decl.name>(with<\/decl.var.parameter.argument_label> recognizer<\/decl.var.parameter.name>: UIPanGestureRecognizer<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 86,
@@ -67572,7 +69793,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func endInteractiveMovement()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> endInteractiveMovement<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 29,
@@ -67590,7 +69811,7 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func cancelInteractiveMovement()<\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ReorderingActions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ReorderingActions.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> cancelInteractiveMovement<\/decl.name>()<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 32,
@@ -67613,7 +69834,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 3172,
     "key.offset" : 0,
@@ -67633,14 +69854,14 @@
         "key.doc.column" : 13,
         "key.doc.comment" : "Specifies the kind of animation to use when scrolling a list view.",
         "key.doc.declaration" : "public enum ScrollAnimation",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
-        "key.doc.full_as_xml" : "ScrollAnimation<\/Name>s:10ListableUI15ScrollAnimationO<\/USR>public enum ScrollAnimation<\/Declaration>Specifies the kind of animation to use when scrolling a list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
+        "key.doc.full_as_xml" : "ScrollAnimation<\/Name>s:10ListableUI15ScrollAnimationO<\/USR>public enum ScrollAnimation<\/Declaration>Specifies the kind of animation to use when scrolling a list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 12,
         "key.doc.name" : "ScrollAnimation",
         "key.doc.type" : "Other",
         "key.doclength" : 71,
         "key.docoffset" : 114,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ScrollAnimation<\/decl.name><\/decl.enum>",
         "key.kind" : "source.lang.swift.decl.enum",
         "key.length" : 2007,
@@ -67665,14 +69886,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "No animation is performed.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
-                "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI15ScrollAnimationO4noneyA2CmF<\/USR><\/Declaration>No animation is performed.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
+                "key.doc.full_as_xml" : "none<\/Name>s:10ListableUI15ScrollAnimationO4noneyA2CmF<\/USR><\/Declaration>No animation is performed.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 15,
                 "key.doc.name" : "none",
                 "key.doc.type" : "Other",
                 "key.doclength" : 31,
                 "key.docoffset" : 224,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> none<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 4,
@@ -67702,14 +69923,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "A default animation is performed. This is the same as `.custom()`.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
-                "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI15ScrollAnimationO7defaultyA2CmF<\/USR><\/Declaration>A default animation is performed. This is the same as .custom()<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
+                "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI15ScrollAnimationO7defaultyA2CmF<\/USR><\/Declaration>A default animation is performed. This is the same as .custom()<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 18,
                 "key.doc.name" : "default",
                 "key.doc.type" : "Other",
                 "key.doclength" : 71,
                 "key.docoffset" : 278,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> `default`<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 9,
@@ -67739,14 +69960,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "A custom animation is performed.\nThe default parameters are 0.25 seconds and `.curveEaseInOut` animation curve.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
-                "key.doc.full_as_xml" : "custom(duration:options:)<\/Name>s:10ListableUI15ScrollAnimationO6customyACSd_ShyAC0D7OptionsOGtcACmF<\/USR><\/Declaration>A custom animation is performed. The default parameters are 0.25 seconds and .curveEaseInOut<\/codeVoice> animation curve.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
+                "key.doc.full_as_xml" : "custom(duration:options:)<\/Name>s:10ListableUI15ScrollAnimationO6customyACSd_ShyAC0D7OptionsOGtcACmF<\/USR><\/Declaration>A custom animation is performed. The default parameters are 0.25 seconds and .curveEaseInOut<\/codeVoice> animation curve.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 22,
                 "key.doc.name" : "custom(duration:options:)",
                 "key.doc.type" : "Other",
                 "key.doclength" : 124,
                 "key.docoffset" : 377,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> custom<\/decl.name>(duration<\/decl.var.parameter.argument_label>: TimeInterval<\/ref.typealias><\/decl.var.parameter.type> = 0.25<\/decl.var.parameter>, options<\/decl.var.parameter.argument_label>: Set<\/ref.struct><AnimationOptions<\/ref.enum>><\/decl.var.parameter.type> = .default<\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 82,
@@ -67776,7 +69997,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case spring(duration: TimeInterval<\/Type> = 0.25, timing: UISpringTimingParameters<\/Type> = .init())<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> spring<\/decl.name>(duration<\/decl.var.parameter.argument_label>: TimeInterval<\/ref.typealias><\/decl.var.parameter.type> = 0.25<\/decl.var.parameter>, timing<\/decl.var.parameter.argument_label>: UISpringTimingParameters<\/ref.class><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 83,
@@ -67811,14 +70032,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Ands the animation with the provided bool, returning the animation if true, and `.none` if false.",
             "key.doc.declaration" : "public func and(with animated: Bool) -> ScrollAnimation",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
-            "key.doc.full_as_xml" : "and(with:)<\/Name>s:10ListableUI15ScrollAnimationO3and4withACSb_tF<\/USR>public func and(with animated: Bool) -> ScrollAnimation<\/Declaration>Ands the animation with the provided bool, returning the animation if true, and .none<\/codeVoice> if false.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
+            "key.doc.full_as_xml" : "and(with:)<\/Name>s:10ListableUI15ScrollAnimationO3and4withACSb_tF<\/USR>public func and(with animated: Bool) -> ScrollAnimation<\/Declaration>Ands the animation with the provided bool, returning the animation if true, and .none<\/codeVoice> if false.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 27,
             "key.doc.name" : "and(with:)",
             "key.doc.type" : "Function",
             "key.doclength" : 102,
             "key.docoffset" : 700,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> and<\/decl.name>(with<\/decl.var.parameter.argument_label> animated<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ScrollAnimation<\/ref.enum><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 155,
@@ -67851,14 +70072,14 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "Performs the provided animations for the `ScrollAnimation`.",
             "key.doc.declaration" : "public func perform(animations: @escaping () -> (), completion: @escaping (Bool) -> () = { _ in })",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
-            "key.doc.full_as_xml" : "perform(animations:completion:)<\/Name>s:10ListableUI15ScrollAnimationO7perform10animations10completionyyyc_ySbctF<\/USR>public func perform(animations: @escaping () -> (), completion: @escaping (Bool) -> () = { _ in })<\/Declaration>Performs the provided animations for the ScrollAnimation<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
+            "key.doc.full_as_xml" : "perform(animations:completion:)<\/Name>s:10ListableUI15ScrollAnimationO7perform10animations10completionyyyc_ySbctF<\/USR>public func perform(animations: @escaping () -> (), completion: @escaping (Bool) -> () = { _ in })<\/Declaration>Performs the provided animations for the ScrollAnimation<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 36,
             "key.doc.name" : "perform(animations:completion:)",
             "key.doc.type" : "Function",
             "key.doclength" : 64,
             "key.docoffset" : 978,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> perform<\/decl.name>(animations<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> () -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type><\/decl.var.parameter>, completion<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> (Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1144,
@@ -67887,12 +70108,12 @@
         "key.bodyoffset" : 2229,
         "key.doc.column" : 13,
         "key.doc.declaration" : "public enum ScrollAnimation",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
-        "key.doc.full_as_xml" : "ScrollAnimation<\/Name>s:10ListableUI15ScrollAnimationO<\/USR>public enum ScrollAnimation<\/Declaration>Specifies the kind of animation to use when scrolling a list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
+        "key.doc.full_as_xml" : "ScrollAnimation<\/Name>s:10ListableUI15ScrollAnimationO<\/USR>public enum ScrollAnimation<\/Declaration>Specifies the kind of animation to use when scrolling a list view.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 12,
         "key.doc.name" : "ScrollAnimation",
         "key.doc.type" : "Other",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> ScrollAnimation<\/decl.name><\/decl.enum>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 258,
@@ -67919,8 +70140,8 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "The animations options available for the `ScrollAnimation`.",
             "key.doc.declaration" : "public enum AnimationOptions : Hashable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
-            "key.doc.full_as_xml" : "AnimationOptions<\/Name>s:10ListableUI15ScrollAnimationO0D7OptionsO<\/USR>public enum AnimationOptions : Hashable<\/Declaration>The animations options available for the ScrollAnimation<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
+            "key.doc.full_as_xml" : "AnimationOptions<\/Name>s:10ListableUI15ScrollAnimationO0D7OptionsO<\/USR>public enum AnimationOptions : Hashable<\/Declaration>The animations options available for the ScrollAnimation<\/codeVoice>.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 80,
             "key.doc.name" : "AnimationOptions",
             "key.doc.type" : "Other",
@@ -67933,7 +70154,7 @@
                 "key.offset" : 2338
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> AnimationOptions<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -67960,7 +70181,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case curveEaseInOut<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> curveEaseInOut<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 14,
@@ -67987,7 +70208,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case curveEaseIn<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> curveEaseIn<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 11,
@@ -68014,7 +70235,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case curveEaseOut<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> curveEaseOut<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 12,
@@ -68041,7 +70262,7 @@
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case curveLinear<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> curveLinear<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 11,
@@ -68164,7 +70385,7 @@
             ],
             "key.bodylength" : 31,
             "key.bodyoffset" : 2574,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> `default`<\/decl.name>: `Self`<\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.groupname" : "Collection\/HashedCollections",
             "key.kind" : "source.lang.swift.decl.var.static",
@@ -68184,7 +70405,7 @@
             "key.annotated_decl" : "var toSystem: UIView<\/Type>.AnimationOptions<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 512,
             "key.bodyoffset" : 2656,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> toSystem<\/decl.name>: UIView<\/ref.class>.AnimationOptions<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.groupname" : "Collection\/HashedCollections",
             "key.kind" : "source.lang.swift.decl.var.instance",
@@ -68202,7 +70423,7 @@
           },
           {
             "key.annotated_decl" : "var options: UIView<\/Type>.AnimationOptions<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollAnimation.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollAnimation.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> options<\/decl.name>: UIView<\/ref.class>.AnimationOptions<\/ref.struct><\/decl.var.type><\/decl.var.local>",
             "key.groupname" : "Collection\/HashedCollections",
             "key.kind" : "source.lang.swift.decl.var.local",
@@ -68226,7 +70447,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 2092,
     "key.offset" : 0,
@@ -68251,8 +70472,8 @@
             "Para" : "You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-        "key.doc.full_as_xml" : "ScrollPosition<\/Name>s:10ListableUI14ScrollPositionV<\/USR>public struct ScrollPosition : Equatable<\/Declaration>Specifies how to position an item in a list when requesting the list scrolls to it.<\/Para><\/Abstract>You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+        "key.doc.full_as_xml" : "ScrollPosition<\/Name>s:10ListableUI14ScrollPositionV<\/USR>public struct ScrollPosition : Equatable<\/Declaration>Specifies how to position an item in a list when requesting the list scrolls to it.<\/Para><\/Abstract>You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 14,
         "key.doc.name" : "ScrollPosition",
         "key.doc.type" : "Class",
@@ -68265,7 +70486,7 @@
             "key.offset" : 397
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ScrollPosition<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -68288,14 +70509,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "The position to scroll to within the list.",
             "key.doc.declaration" : "var position: Position",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-            "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI14ScrollPositionV8positionAC0D0Ovp<\/USR>var position: Position<\/Declaration>The position to scroll to within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.doc.full_as_xml" : "position<\/Name>s:10ListableUI14ScrollPositionV8positionAC0D0Ovp<\/USR>var position: Position<\/Declaration>The position to scroll to within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 17,
             "key.doc.name" : "position",
             "key.doc.type" : "Other",
             "key.doclength" : 47,
             "key.docoffset" : 413,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> position<\/decl.name>: Position<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 23,
@@ -68317,14 +70538,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "The rule to apply if the item is already partially visible within the list.",
             "key.doc.declaration" : "var ifAlreadyVisible: IfAlreadyVisible",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-            "key.doc.full_as_xml" : "ifAlreadyVisible<\/Name>s:10ListableUI14ScrollPositionV16ifAlreadyVisibleAC02IffG0Ovp<\/USR>var ifAlreadyVisible: IfAlreadyVisible<\/Declaration>The rule to apply if the item is already partially visible within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.doc.full_as_xml" : "ifAlreadyVisible<\/Name>s:10ListableUI14ScrollPositionV16ifAlreadyVisibleAC02IffG0Ovp<\/USR>var ifAlreadyVisible: IfAlreadyVisible<\/Declaration>The rule to apply if the item is already partially visible within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 20,
             "key.doc.name" : "ifAlreadyVisible",
             "key.doc.type" : "Other",
             "key.doclength" : 80,
             "key.docoffset" : 497,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> ifAlreadyVisible<\/decl.name>: IfAlreadyVisible<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 39,
@@ -68346,14 +70567,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "The offset to apply when scrolling to the item in the list.",
             "key.doc.declaration" : "var offset: CGFloat",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-            "key.doc.full_as_xml" : "offset<\/Name>s:10ListableUI14ScrollPositionV6offset12CoreGraphics7CGFloatVvp<\/USR>var offset: CGFloat<\/Declaration>The offset to apply when scrolling to the item in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.doc.full_as_xml" : "offset<\/Name>s:10ListableUI14ScrollPositionV6offset12CoreGraphics7CGFloatVvp<\/USR>var offset: CGFloat<\/Declaration>The offset to apply when scrolling to the item in the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 23,
             "key.doc.name" : "offset",
             "key.doc.type" : "Other",
             "key.doclength" : 64,
             "key.docoffset" : 629,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> offset<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 20,
@@ -68384,14 +70605,14 @@
             "key.doc.column" : 12,
             "key.doc.comment" : "Creates a new scroll position with the provided values.",
             "key.doc.declaration" : "public init(position: Position, ifAlreadyVisible: IfAlreadyVisible = .doNothing, offset: CGFloat = 0.0)",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-            "key.doc.full_as_xml" : "init(position:ifAlreadyVisible:offset:)<\/Name>s:10ListableUI14ScrollPositionV8position16ifAlreadyVisible6offsetA2C0D0O_AC02IfgH0O12CoreGraphics7CGFloatVtcfc<\/USR>public init(position: Position, ifAlreadyVisible: IfAlreadyVisible = .doNothing, offset: CGFloat = 0.0)<\/Declaration>Creates a new scroll position with the provided values.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.doc.full_as_xml" : "init(position:ifAlreadyVisible:offset:)<\/Name>s:10ListableUI14ScrollPositionV8position16ifAlreadyVisible6offsetA2C0D0O_AC02IfgH0O12CoreGraphics7CGFloatVtcfc<\/USR>public init(position: Position, ifAlreadyVisible: IfAlreadyVisible = .doNothing, offset: CGFloat = 0.0)<\/Declaration>Creates a new scroll position with the provided values.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 26,
             "key.doc.name" : "init(position:ifAlreadyVisible:offset:)",
             "key.doc.type" : "Function",
             "key.doclength" : 60,
             "key.docoffset" : 727,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(position<\/decl.var.parameter.argument_label>: Position<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, ifAlreadyVisible<\/decl.var.parameter.argument_label>: IfAlreadyVisible<\/ref.enum><\/decl.var.parameter.type> = .doNothing<\/decl.var.parameter>, offset<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 248,
@@ -68425,12 +70646,12 @@
             "Para" : "You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event."
           }
         ],
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-        "key.doc.full_as_xml" : "ScrollPosition<\/Name>s:10ListableUI14ScrollPositionV<\/USR>public struct ScrollPosition : Equatable<\/Declaration>Specifies how to position an item in a list when requesting the list scrolls to it.<\/Para><\/Abstract>You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event.<\/Para><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+        "key.doc.full_as_xml" : "ScrollPosition<\/Name>s:10ListableUI14ScrollPositionV<\/USR>public struct ScrollPosition : Equatable<\/Declaration>Specifies how to position an item in a list when requesting the list scrolls to it.<\/Para><\/Abstract>You can specify a position (top, center, bottom), what to do if the item is already visible on screen, and any additional custom offset to apply to the scroll event.<\/Para><\/Discussion><\/CommentParts><\/Class>",
         "key.doc.line" : 14,
         "key.doc.name" : "ScrollPosition",
         "key.doc.type" : "Class",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> ScrollPosition<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 1040,
@@ -68457,8 +70678,8 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "How the item should be positioned within the list.",
             "key.doc.declaration" : "public enum Position : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-            "key.doc.full_as_xml" : "Position<\/Name>s:10ListableUI14ScrollPositionV0D0O<\/USR>public enum Position : Equatable<\/Declaration>How the item should be positioned within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.doc.full_as_xml" : "Position<\/Name>s:10ListableUI14ScrollPositionV0D0O<\/USR>public enum Position : Equatable<\/Declaration>How the item should be positioned within the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 41,
             "key.doc.name" : "Position",
             "key.doc.type" : "Other",
@@ -68471,7 +70692,7 @@
                 "key.offset" : 1164
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Position<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -68501,14 +70722,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "Scroll the item to the top of the list.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-                    "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI14ScrollPositionV0D0O3topyA2EmF<\/USR><\/Declaration>Scroll the item to the top of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.doc.full_as_xml" : "top<\/Name>s:10ListableUI14ScrollPositionV0D0O3topyA2EmF<\/USR><\/Declaration>Scroll the item to the top of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 44,
                     "key.doc.name" : "top",
                     "key.doc.type" : "Other",
                     "key.doclength" : 44,
                     "key.docoffset" : 1188,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> top<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 3,
@@ -68538,14 +70759,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "Scroll the item to the middle of the list.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-                    "key.doc.full_as_xml" : "centered<\/Name>s:10ListableUI14ScrollPositionV0D0O8centeredyA2EmF<\/USR><\/Declaration>Scroll the item to the middle of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.doc.full_as_xml" : "centered<\/Name>s:10ListableUI14ScrollPositionV0D0O8centeredyA2EmF<\/USR><\/Declaration>Scroll the item to the middle of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 47,
                     "key.doc.name" : "centered",
                     "key.doc.type" : "Other",
                     "key.doclength" : 47,
                     "key.docoffset" : 1266,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> centered<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 8,
@@ -68575,14 +70796,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "Scroll the item to the bottom of the list.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-                    "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI14ScrollPositionV0D0O6bottomyA2EmF<\/USR><\/Declaration>Scroll the item to the bottom of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.doc.full_as_xml" : "bottom<\/Name>s:10ListableUI14ScrollPositionV0D0O6bottomyA2EmF<\/USR><\/Declaration>Scroll the item to the bottom of the list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 50,
                     "key.doc.name" : "bottom",
                     "key.doc.type" : "Other",
                     "key.doclength" : 47,
                     "key.docoffset" : 1352,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> bottom<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 6,
@@ -68604,7 +70825,7 @@
                 "key.annotated_decl" : "var UICollectionViewScrollPosition: UICollectionView<\/Type>.ScrollPosition<\/Type> { get }<\/Declaration>",
                 "key.bodylength" : 180,
                 "key.bodyoffset" : 1506,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> UICollectionViewScrollPosition<\/decl.name>: UICollectionView<\/ref.class>.ScrollPosition<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 251,
@@ -68639,8 +70860,8 @@
             "key.doc.column" : 17,
             "key.doc.comment" : "What action should be taken if an item is already partially visible within a list.",
             "key.doc.declaration" : "public enum IfAlreadyVisible : Equatable",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-            "key.doc.full_as_xml" : "IfAlreadyVisible<\/Name>s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO<\/USR>public enum IfAlreadyVisible : Equatable<\/Declaration>What action should be taken if an item is already partially visible within a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.doc.full_as_xml" : "IfAlreadyVisible<\/Name>s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO<\/USR>public enum IfAlreadyVisible : Equatable<\/Declaration>What action should be taken if an item is already partially visible within a list.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 63,
             "key.doc.name" : "IfAlreadyVisible",
             "key.doc.type" : "Other",
@@ -68653,7 +70874,7 @@
                 "key.offset" : 1830
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> IfAlreadyVisible<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -68683,14 +70904,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "Do not perform any action if the item is already partially visible.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-                    "key.doc.full_as_xml" : "doNothing<\/Name>s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO9doNothingyA2EmF<\/USR><\/Declaration>Do not perform any action if the item is already partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.doc.full_as_xml" : "doNothing<\/Name>s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO9doNothingyA2EmF<\/USR><\/Declaration>Do not perform any action if the item is already partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 66,
                     "key.doc.name" : "doNothing",
                     "key.doc.type" : "Other",
                     "key.doclength" : 72,
                     "key.docoffset" : 1854,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> doNothing<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 9,
@@ -68720,14 +70941,14 @@
                     "key.doc.column" : 14,
                     "key.doc.comment" : "Scroll the item to the desired `Position`, even if it is already partially visible.",
                     "key.doc.declaration" : "",
-                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
-                    "key.doc.full_as_xml" : "scrollToPosition<\/Name>s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO08scrollToD0yA2EmF<\/USR><\/Declaration>Scroll the item to the desired Position<\/codeVoice>, even if it is already partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                    "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.doc.full_as_xml" : "scrollToPosition<\/Name>s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO08scrollToD0yA2EmF<\/USR><\/Declaration>Scroll the item to the desired Position<\/codeVoice>, even if it is already partially visible.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                     "key.doc.line" : 69,
                     "key.doc.name" : "scrollToPosition",
                     "key.doc.type" : "Other",
                     "key.doclength" : 88,
                     "key.docoffset" : 1966,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/ScrollPosition.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/ScrollPosition.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> scrollToPosition<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 16,
@@ -68757,9 +70978,9 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 6626,
+    "key.length" : 5271,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -68772,18 +70993,18 @@
             "key.offset" : 86
           }
         ],
-        "key.bodylength" : 4315,
+        "key.bodylength" : 3990,
         "key.bodyoffset" : 109,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Section<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
-        "key.length" : 4332,
+        "key.length" : 4007,
         "key.name" : "Section",
         "key.namelength" : 7,
         "key.nameoffset" : 100,
         "key.offset" : 93,
         "key.parsed_declaration" : "public struct Section",
-        "key.parsed_scope.end" : 182,
+        "key.parsed_scope.end" : 170,
         "key.parsed_scope.start" : 9,
         "key.substructure" : [
           {
@@ -68807,14 +71028,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "Data backing the identity and updates to the section – for example\nif the section has been moved, plus the identifier for the section's content.",
             "key.doc.declaration" : "public var info: AnySectionInfo",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.doc.full_as_xml" : "info<\/Name>s:10ListableUI7SectionV4infoAA03AnyC4Info_pvp<\/USR>public var info: AnySectionInfo<\/Declaration>Data backing the identity and updates to the section – for example if the section has been moved, plus the identifier for the section’s content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.doc.full_as_xml" : "info<\/Name>s:10ListableUI7SectionV4infoAA03AnyC4Info_pvp<\/USR>public var info: AnySectionInfo<\/Declaration>Data backing the identity and updates to the section – for example if the section has been moved, plus the identifier for the section’s content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 17,
             "key.doc.name" : "info",
             "key.doc.type" : "Other",
             "key.doclength" : 159,
             "key.docoffset" : 164,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> info<\/decl.name>: AnySectionInfo<\/ref.protocol><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 25,
@@ -68830,78 +71051,6 @@
             "key.typeusr" : "$s10ListableUI14AnySectionInfo_pD",
             "key.usr" : "s:10ListableUI7SectionV4infoAA03AnyC4Info_pvp"
           },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var layout: Layout<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 474
-              }
-            ],
-            "key.doc.column" : 16,
-            "key.doc.comment" : "The layout for the section and all its content.\nOnly relevant to the `list` layout type.",
-            "key.doc.declaration" : "public var layout: Layout",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.doc.full_as_xml" : "layout<\/Name>s:10ListableUI7SectionV6layoutAC6LayoutVvp<\/USR>public var layout: Layout<\/Declaration>The layout for the section and all its content. Only relevant to the list<\/codeVoice> layout type.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 21,
-            "key.doc.name" : "layout",
-            "key.doc.type" : "Other",
-            "key.doclength" : 101,
-            "key.docoffset" : 369,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layout<\/decl.name>: Layout<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 19,
-            "key.name" : "layout",
-            "key.namelength" : 6,
-            "key.nameoffset" : 485,
-            "key.offset" : 481,
-            "key.parsed_declaration" : "public var layout : Layout",
-            "key.parsed_scope.end" : 21,
-            "key.parsed_scope.start" : 21,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Section.Layout",
-            "key.typeusr" : "$s10ListableUI7SectionV6LayoutVD",
-            "key.usr" : "s:10ListableUI7SectionV6layoutAC6LayoutVvp"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public var columns: Columns<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 621
-              }
-            ],
-            "key.doc.column" : 16,
-            "key.doc.comment" : "How columns within the section should be distributed.\nOnly relevant to the `list` layout type.",
-            "key.doc.declaration" : "public var columns: Columns",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.doc.full_as_xml" : "columns<\/Name>s:10ListableUI7SectionV7columnsAC7ColumnsVvp<\/USR>public var columns: Columns<\/Declaration>How columns within the section should be distributed. Only relevant to the list<\/codeVoice> layout type.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 25,
-            "key.doc.name" : "columns",
-            "key.doc.type" : "Other",
-            "key.doclength" : 107,
-            "key.docoffset" : 510,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> columns<\/decl.name>: Columns<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-            "key.kind" : "source.lang.swift.decl.var.instance",
-            "key.length" : 21,
-            "key.name" : "columns",
-            "key.namelength" : 7,
-            "key.nameoffset" : 632,
-            "key.offset" : 628,
-            "key.parsed_declaration" : "public var columns : Columns",
-            "key.parsed_scope.end" : 25,
-            "key.parsed_scope.start" : 25,
-            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-            "key.typename" : "Section.Columns",
-            "key.typeusr" : "$s10ListableUI7SectionV7ColumnsVD",
-            "key.usr" : "s:10ListableUI7SectionV7columnsAC7ColumnsVvp"
-          },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "public var header: AnyHeaderFooter<\/Type>?<\/Declaration>",
@@ -68909,30 +71058,30 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 716
+                "key.offset" : 426
               }
             ],
             "key.doc.column" : 16,
             "key.doc.comment" : "The header, if any, associated with the section.",
             "key.doc.declaration" : "public var header: AnyHeaderFooter?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.doc.full_as_xml" : "header<\/Name>s:10ListableUI7SectionV6headerAA15AnyHeaderFooter_pSgvp<\/USR>public var header: AnyHeaderFooter?<\/Declaration>The header, if any, associated with the section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 28,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.doc.full_as_xml" : "header<\/Name>s:10ListableUI7SectionV6headerAA15AnyHeaderFooter_pSgvp<\/USR>public var header: AnyHeaderFooter?<\/Declaration>The header, if any, associated with the section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 20,
             "key.doc.name" : "header",
             "key.doc.type" : "Other",
             "key.doclength" : 53,
-            "key.docoffset" : 659,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.docoffset" : 369,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> header<\/decl.name>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
             "key.name" : "header",
             "key.namelength" : 6,
-            "key.nameoffset" : 727,
-            "key.offset" : 723,
+            "key.nameoffset" : 437,
+            "key.offset" : 433,
             "key.parsed_declaration" : "public var header : AnyHeaderFooter?",
-            "key.parsed_scope.end" : 28,
-            "key.parsed_scope.start" : 28,
+            "key.parsed_scope.end" : 20,
+            "key.parsed_scope.start" : 20,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "AnyHeaderFooter?",
             "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pSgD",
@@ -68945,30 +71094,30 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 819
+                "key.offset" : 529
               }
             ],
             "key.doc.column" : 16,
             "key.doc.comment" : "The footer, if any, associated with the section.",
             "key.doc.declaration" : "public var footer: AnyHeaderFooter?",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.doc.full_as_xml" : "footer<\/Name>s:10ListableUI7SectionV6footerAA15AnyHeaderFooter_pSgvp<\/USR>public var footer: AnyHeaderFooter?<\/Declaration>The footer, if any, associated with the section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 31,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.doc.full_as_xml" : "footer<\/Name>s:10ListableUI7SectionV6footerAA15AnyHeaderFooter_pSgvp<\/USR>public var footer: AnyHeaderFooter?<\/Declaration>The footer, if any, associated with the section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 23,
             "key.doc.name" : "footer",
             "key.doc.type" : "Other",
             "key.doclength" : 53,
-            "key.docoffset" : 762,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.docoffset" : 472,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> footer<\/decl.name>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
             "key.name" : "footer",
             "key.namelength" : 6,
-            "key.nameoffset" : 830,
-            "key.offset" : 826,
+            "key.nameoffset" : 540,
+            "key.offset" : 536,
             "key.parsed_declaration" : "public var footer : AnyHeaderFooter?",
-            "key.parsed_scope.end" : 31,
-            "key.parsed_scope.start" : 31,
+            "key.parsed_scope.end" : 23,
+            "key.parsed_scope.start" : 23,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "AnyHeaderFooter?",
             "key.typeusr" : "$s10ListableUI15AnyHeaderFooter_pSgD",
@@ -68981,30 +71130,30 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 921
+                "key.offset" : 631
               }
             ],
             "key.doc.column" : 16,
             "key.doc.comment" : "The items, if any, associated with the section.",
             "key.doc.declaration" : "public var items: [AnyItem]",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI7SectionV5itemsSayAA7AnyItem_pGvp<\/USR>public var items: [AnyItem]<\/Declaration>The items, if any, associated with the section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
-            "key.doc.line" : 34,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.doc.full_as_xml" : "items<\/Name>s:10ListableUI7SectionV5itemsSayAA7AnyItem_pGvp<\/USR>public var items: [AnyItem]<\/Declaration>The items, if any, associated with the section.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 26,
             "key.doc.name" : "items",
             "key.doc.type" : "Other",
             "key.doclength" : 52,
-            "key.docoffset" : 865,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.docoffset" : 575,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> items<\/decl.name>: [AnyItem<\/ref.protocol>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 21,
             "key.name" : "items",
             "key.namelength" : 5,
-            "key.nameoffset" : 932,
-            "key.offset" : 928,
+            "key.nameoffset" : 642,
+            "key.offset" : 638,
             "key.parsed_declaration" : "public var items : [AnyItem]",
-            "key.parsed_scope.end" : 34,
-            "key.parsed_scope.start" : 34,
+            "key.parsed_scope.end" : 26,
+            "key.parsed_scope.start" : 26,
             "key.setter_accessibility" : "source.lang.swift.accessibility.public",
             "key.typename" : "[AnyItem]",
             "key.typeusr" : "$sSay10ListableUI7AnyItem_pGD",
@@ -69017,32 +71166,32 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1141
+                "key.offset" : 851
               }
             ],
             "key.bodylength" : 626,
-            "key.bodyoffset" : 1217,
+            "key.bodyoffset" : 927,
             "key.doc.column" : 17,
             "key.doc.comment" : "Check if the section contains any of the given types, which you specify via the `filters`\nparameter. If you do not specify a `filters` parameter, `[.items]` is used.",
             "key.doc.declaration" : "public func contains(any filters: Set = [.items]) -> Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.doc.full_as_xml" : "contains(any:)<\/Name>s:10ListableUI7SectionV8contains3anySbShyAA14ContentFiltersOG_tF<\/USR>public func contains(any filters: Set<ContentFilters> = [.items]) -> Bool<\/Declaration>Check if the section contains any of the given types, which you specify via the filters<\/codeVoice> parameter. If you do not specify a filters<\/codeVoice> parameter, [.items]<\/codeVoice> is used.<\/Para><\/Abstract><\/CommentParts><\/Function>",
-            "key.doc.line" : 38,
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.doc.full_as_xml" : "contains(any:)<\/Name>s:10ListableUI7SectionV8contains3anySbShyAA14ContentFiltersOG_tF<\/USR>public func contains(any filters: Set<ContentFilters> = [.items]) -> Bool<\/Declaration>Check if the section contains any of the given types, which you specify via the filters<\/codeVoice> parameter. If you do not specify a filters<\/codeVoice> parameter, [.items]<\/codeVoice> is used.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.line" : 30,
             "key.doc.name" : "contains(any:)",
             "key.doc.type" : "Function",
             "key.doclength" : 178,
-            "key.docoffset" : 959,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.docoffset" : 669,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> contains<\/decl.name>(any<\/decl.var.parameter.argument_label> filters<\/decl.var.parameter.name>: Set<\/ref.struct><ContentFilters<\/ref.enum>><\/decl.var.parameter.type> = [.items]<\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 696,
             "key.name" : "contains(any:)",
             "key.namelength" : 54,
-            "key.nameoffset" : 1153,
-            "key.offset" : 1148,
+            "key.nameoffset" : 863,
+            "key.offset" : 858,
             "key.parsed_declaration" : "public func contains(any filters : Set = [.items]) -> Bool",
-            "key.parsed_scope.end" : 62,
-            "key.parsed_scope.start" : 38,
+            "key.parsed_scope.end" : 54,
+            "key.parsed_scope.start" : 30,
             "key.substructure" : [
 
             ],
@@ -69052,138 +71201,100 @@
           },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
-            "key.length" : 20,
-            "key.name" : "MARK: Initialization",
+            "key.length" : 32,
+            "key.name" : "MARK: Layout Specific Parameters",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 1864
+            "key.offset" : 1574
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public typealias Section<\/Type>.Build = (inout Section<\/Type>) -> ()<\/Declaration>",
+            "key.annotated_decl" : "public var layouts: SectionLayouts<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1901
+                "key.offset" : 1623
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Section<\/ref.struct>.Build<\/decl.name> = (inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
-            "key.kind" : "source.lang.swift.decl.typealias",
-            "key.length" : 39,
-            "key.name" : "Build",
-            "key.namelength" : 5,
-            "key.nameoffset" : 1918,
-            "key.offset" : 1908,
-            "key.parsed_declaration" : "public typealias Build = (inout Section) -> ()",
-            "key.parsed_scope.end" : 68,
-            "key.parsed_scope.start" : 68,
-            "key.typename" : "((inout Section) -> ()).Type",
-            "key.typeusr" : "$sy10ListableUI7SectionVzcmD",
-            "key.usr" : "s:10ListableUI7SectionV5Builda"
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> layouts<\/decl.name>: SectionLayouts<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 38,
+            "key.name" : "layouts",
+            "key.namelength" : 7,
+            "key.nameoffset" : 1634,
+            "key.offset" : 1630,
+            "key.parsed_declaration" : "public var layouts : SectionLayouts = .init()",
+            "key.parsed_scope.end" : 60,
+            "key.parsed_scope.start" : 60,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.typename" : "SectionLayouts",
+            "key.typeusr" : "$s10ListableUI14SectionLayoutsVD",
+            "key.usr" : "s:10ListableUI7SectionV7layoutsAA0C7LayoutsVvp"
+          },
+          {
+            "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
+            "key.length" : 20,
+            "key.name" : "MARK: Initialization",
+            "key.namelength" : 0,
+            "key.nameoffset" : 0,
+            "key.offset" : 1688
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init<Identifier>(_ identifier: Identifier<\/Type>, build: Build<\/Type>) where Identifier : Hashable<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public typealias Section<\/Type>.Configure = (inout Section<\/Type>) -> ()<\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 1957
+                "key.offset" : 1725
               }
             ],
-            "key.bodylength" : 65,
-            "key.bodyoffset" : 2063,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
-            "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 165,
-            "key.name" : "init(_:build:)",
-            "key.namelength" : 93,
-            "key.nameoffset" : 1964,
-            "key.offset" : 1964,
-            "key.parsed_declaration" : "public init(\n    _ identifier : Identifier,\n    build : Build\n    )",
-            "key.parsed_scope.end" : 78,
-            "key.parsed_scope.start" : 70,
-            "key.related_decls" : [
-              {
-                "key.annotated_decl" : "init<Info>(_: Info, build: Build) where Info : SectionInfo<\/RelatedName>"
-              },
-              {
-                "key.annotated_decl" : "init<Identifier>(_: Identifier, layout: Layout = Layout(), columns: Columns = .one, header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = []) where Identifier : Hashable<\/RelatedName>"
-              },
-              {
-                "key.annotated_decl" : "init<Info>(_: Info, layout: Layout = Layout(), columns: Columns = .one, header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = []) where Info : SectionInfo<\/RelatedName>"
-              }
-            ],
-            "key.substructure" : [
-              {
-                "key.annotated_decl" : "Identifier : Hashable<\/Type><\/Declaration>",
-                "key.elements" : [
-                  {
-                    "key.kind" : "source.lang.swift.structure.elem.typeref",
-                    "key.length" : 8,
-                    "key.offset" : 1980
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-                "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
-                "key.inheritedtypes" : [
-                  {
-                    "key.name" : "Hashable"
-                  }
-                ],
-                "key.kind" : "source.lang.swift.decl.generic_type_param",
-                "key.length" : 19,
-                "key.name" : "Identifier",
-                "key.namelength" : 10,
-                "key.nameoffset" : 1969,
-                "key.offset" : 1969,
-                "key.parsed_declaration" : "public init (Section.Type) -> (Identifier, (inout Section) -> ()) -> Section",
-            "key.typeusr" : "$s_5build10ListableUI7SectionVx_yADzXEtcSHRzluD",
-            "key.usr" : "s:10ListableUI7SectionV_5buildACx_yACzXEtcSHRzlufc"
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> Section<\/ref.struct>.Configure<\/decl.name> = (inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.typealias>",
+            "key.kind" : "source.lang.swift.decl.typealias",
+            "key.length" : 43,
+            "key.name" : "Configure",
+            "key.namelength" : 9,
+            "key.nameoffset" : 1742,
+            "key.offset" : 1732,
+            "key.parsed_declaration" : "public typealias Configure = (inout Section) -> ()",
+            "key.parsed_scope.end" : 66,
+            "key.parsed_scope.start" : 66,
+            "key.typename" : "((inout Section) -> ()).Type",
+            "key.typeusr" : "$sy10ListableUI7SectionVzcmD",
+            "key.usr" : "s:10ListableUI7SectionV9Configurea"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init<Info>(_ info: Info<\/Type>, build: Build<\/Type>) where Info : SectionInfo<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public init<Info>(_ info: Info<\/Type>, configure: Configure<\/Type>) where Info : SectionInfo<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2139
+                "key.offset" : 1789
               }
             ],
-            "key.bodylength" : 59,
-            "key.bodyoffset" : 2229,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Info<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Info<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, build<\/decl.var.parameter.argument_label>: Build<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Info : SectionInfo<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
+            "key.bodylength" : 63,
+            "key.bodyoffset" : 1887,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Info<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Info<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Configure<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Info : SectionInfo<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 143,
-            "key.name" : "init(_:build:)",
-            "key.namelength" : 77,
-            "key.nameoffset" : 2146,
-            "key.offset" : 2146,
-            "key.parsed_declaration" : "public init(\n    _ info: Info,\n    build : Build\n    )",
-            "key.parsed_scope.end" : 88,
-            "key.parsed_scope.start" : 80,
+            "key.length" : 155,
+            "key.name" : "init(_:configure:)",
+            "key.namelength" : 85,
+            "key.nameoffset" : 1796,
+            "key.offset" : 1796,
+            "key.parsed_declaration" : "public init(\n    _ info: Info,\n    configure : Configure\n    )",
+            "key.parsed_scope.end" : 76,
+            "key.parsed_scope.start" : 68,
             "key.related_decls" : [
               {
-                "key.annotated_decl" : "init<Identifier>(_: Identifier, build: Build) where Identifier : Hashable<\/RelatedName>"
-              },
-              {
-                "key.annotated_decl" : "init<Identifier>(_: Identifier, layout: Layout = Layout(), columns: Columns = .one, header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = []) where Identifier : Hashable<\/RelatedName>"
+                "key.annotated_decl" : "init<Identifier>(_: Identifier, layouts: SectionLayouts = .init(), header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = [], configure: Configure = { _ in }) where Identifier : Hashable<\/RelatedName>"
               },
               {
-                "key.annotated_decl" : "init<Info>(_: Info, layout: Layout = Layout(), columns: Columns = .one, header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = []) where Info : SectionInfo<\/RelatedName>"
+                "key.annotated_decl" : "init<Info>(_: Info, layouts: SectionLayouts = .init(), header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = [], configure: Configure = { _ in }) where Info : SectionInfo<\/RelatedName>"
               }
             ],
             "key.substructure" : [
@@ -69193,10 +71304,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 11,
-                    "key.offset" : 2156
+                    "key.offset" : 1806
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
                 "key.fully_annotated_decl" : "Info<\/decl.generic_type_param.name> : SectionInfo<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -69207,52 +71318,49 @@
                 "key.length" : 16,
                 "key.name" : "Info",
                 "key.namelength" : 4,
-                "key.nameoffset" : 2151,
-                "key.offset" : 2151,
+                "key.nameoffset" : 1801,
+                "key.offset" : 1801,
                 "key.parsed_declaration" : "public init (Section.Type) -> (Info, (inout Section) -> ()) -> Section",
-            "key.typeusr" : "$s_5build10ListableUI7SectionVx_yADzXEtcAB0D4InfoRzluD",
-            "key.usr" : "s:10ListableUI7SectionV_5buildACx_yACzXEtcAA0C4InfoRzlufc"
+            "key.typeusr" : "$s_9configure10ListableUI7SectionVx_yADzXEtcAB0D4InfoRzluD",
+            "key.usr" : "s:10ListableUI7SectionV_9configureACx_yACzXEtcAA0C4InfoRzlufc"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init<Identifier>(_ identifier: Identifier<\/Type>, layout: Layout<\/Type> = Layout(), columns: Columns<\/Type> = .one, header: AnyHeaderFooter<\/Type>? = nil, footer: AnyHeaderFooter<\/Type>? = nil, items: [AnyItem<\/Type>] = []) where Identifier : Hashable<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public init<Identifier>(_ identifier: Identifier<\/Type>, layouts: SectionLayouts<\/Type> = .init(), header: AnyHeaderFooter<\/Type>? = nil, footer: AnyHeaderFooter<\/Type>? = nil, items: [AnyItem<\/Type>] = [], configure: Configure<\/Type> = { _ in }) where Identifier : Hashable<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2299
+                "key.offset" : 1961
               }
             ],
-            "key.bodylength" : 218,
-            "key.bodyoffset" : 2566,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: Layout<\/ref.struct><\/decl.var.parameter.type> = Layout()<\/decl.var.parameter>, columns<\/decl.var.parameter.argument_label>: Columns<\/ref.struct><\/decl.var.parameter.type> = .one<\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [AnyItem<\/ref.protocol>]<\/decl.var.parameter.type> = []<\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
+            "key.bodylength" : 194,
+            "key.bodyoffset" : 2244,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Identifier<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> identifier<\/decl.var.parameter.name>: Identifier<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: SectionLayouts<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [AnyItem<\/ref.protocol>]<\/decl.var.parameter.type> = []<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Configure<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> Identifier : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 479,
-            "key.name" : "init(_:layout:columns:header:footer:items:)",
-            "key.namelength" : 254,
-            "key.nameoffset" : 2306,
-            "key.offset" : 2306,
-            "key.parsed_declaration" : "public init(\n    _ identifier : Identifier,\n    layout : Layout = Layout(),\n    columns : Columns = .one,\n    header : AnyHeaderFooter? = nil,\n    footer : AnyHeaderFooter? = nil,\n    items : [AnyItem] = []\n    )",
-            "key.parsed_scope.end" : 107,
-            "key.parsed_scope.start" : 90,
+            "key.length" : 471,
+            "key.name" : "init(_:layouts:header:footer:items:configure:)",
+            "key.namelength" : 270,
+            "key.nameoffset" : 1968,
+            "key.offset" : 1968,
+            "key.parsed_declaration" : "public init(\n    _ identifier : Identifier,\n    layouts : SectionLayouts = .init(),\n    header : AnyHeaderFooter? = nil,\n    footer : AnyHeaderFooter? = nil,\n    items : [AnyItem] = [],\n    configure : Configure = { _ in }\n    )",
+            "key.parsed_scope.end" : 94,
+            "key.parsed_scope.start" : 78,
             "key.related_decls" : [
               {
-                "key.annotated_decl" : "init<Identifier>(_: Identifier, build: Build) where Identifier : Hashable<\/RelatedName>"
-              },
-              {
-                "key.annotated_decl" : "init<Info>(_: Info, build: Build) where Info : SectionInfo<\/RelatedName>"
+                "key.annotated_decl" : "init(_:configure:)<\/RelatedName>"
               },
               {
-                "key.annotated_decl" : "init<Info>(_: Info, layout: Layout = Layout(), columns: Columns = .one, header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = []) where Info : SectionInfo<\/RelatedName>"
+                "key.annotated_decl" : "init<Info>(_: Info, layouts: SectionLayouts = .init(), header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = [], configure: Configure = { _ in }) where Info : SectionInfo<\/RelatedName>"
               }
             ],
             "key.substructure" : [
@@ -69262,10 +71370,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 8,
-                    "key.offset" : 2322
+                    "key.offset" : 1984
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
                 "key.fully_annotated_decl" : "Identifier<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -69276,52 +71384,49 @@
                 "key.length" : 19,
                 "key.name" : "Identifier",
                 "key.namelength" : 10,
-                "key.nameoffset" : 2311,
-                "key.offset" : 2311,
+                "key.nameoffset" : 1973,
+                "key.offset" : 1973,
                 "key.parsed_declaration" : "public init (Section.Type) -> (Identifier, Section.Layout, Section.Columns, AnyHeaderFooter?, AnyHeaderFooter?, [AnyItem]) -> Section",
-            "key.typeusr" : "$s_6layout7columns6header6footer5items10ListableUI7SectionVx_AH6LayoutVAH7ColumnsVAF15AnyHeaderFooter_pSgANSayAF0K4Item_pGtcSHRzluD",
-            "key.usr" : "s:10ListableUI7SectionV_6layout7columns6header6footer5itemsACx_AC6LayoutVAC7ColumnsVAA15AnyHeaderFooter_pSgANSayAA0K4Item_pGtcSHRzlufc"
+            "key.typename" : " (Section.Type) -> (Identifier, SectionLayouts, AnyHeaderFooter?, AnyHeaderFooter?, [AnyItem], (inout Section) -> ()) -> Section",
+            "key.typeusr" : "$s_7layouts6header6footer5items9configure10ListableUI7SectionVx_AF0H7LayoutsVAF15AnyHeaderFooter_pSgALSayAF0J4Item_pGyAHzXEtcSHRzluD",
+            "key.usr" : "s:10ListableUI7SectionV_7layouts6header6footer5items9configureACx_AA0C7LayoutsVAA15AnyHeaderFooter_pSgALSayAA0J4Item_pGyACzXEtcSHRzlufc"
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public init<Info>(_ info: Info<\/Type>, layout: Layout<\/Type> = Layout(), columns: Columns<\/Type> = .one, header: AnyHeaderFooter<\/Type>? = nil, footer: AnyHeaderFooter<\/Type>? = nil, items: [AnyItem<\/Type>] = []) where Info : SectionInfo<\/Type><\/Declaration>",
+            "key.annotated_decl" : "public init<Info>(_ info: Info<\/Type>, layouts: SectionLayouts<\/Type> = .init(), header: AnyHeaderFooter<\/Type>? = nil, footer: AnyHeaderFooter<\/Type>? = nil, items: [AnyItem<\/Type>] = [], configure: Configure<\/Type> = { _ in }) where Info : SectionInfo<\/Type><\/Declaration>",
             "key.attributes" : [
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 2795
+                "key.offset" : 2449
               }
             ],
-            "key.bodylength" : 202,
-            "key.bodyoffset" : 3046,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Info<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Info<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, layout<\/decl.var.parameter.argument_label>: Layout<\/ref.struct><\/decl.var.parameter.type> = Layout()<\/decl.var.parameter>, columns<\/decl.var.parameter.argument_label>: Columns<\/ref.struct><\/decl.var.parameter.type> = .one<\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [AnyItem<\/ref.protocol>]<\/decl.var.parameter.type> = []<\/decl.var.parameter>) where<\/syntaxtype.keyword> Info : SectionInfo<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
+            "key.bodylength" : 207,
+            "key.bodyoffset" : 2716,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword><Info<\/decl.generic_type_param.name><\/decl.generic_type_param>>(_<\/decl.var.parameter.argument_label> info<\/decl.var.parameter.name>: Info<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>, layouts<\/decl.var.parameter.argument_label>: SectionLayouts<\/ref.struct><\/decl.var.parameter.type> = .init()<\/decl.var.parameter>, header<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, footer<\/decl.var.parameter.argument_label>: AnyHeaderFooter<\/ref.protocol>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, items<\/decl.var.parameter.argument_label>: [AnyItem<\/ref.protocol>]<\/decl.var.parameter.type> = []<\/decl.var.parameter>, configure<\/decl.var.parameter.argument_label>: Configure<\/ref.typealias><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>) where<\/syntaxtype.keyword> Info : SectionInfo<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
-            "key.length" : 447,
-            "key.name" : "init(_:layout:columns:header:footer:items:)",
-            "key.namelength" : 238,
-            "key.nameoffset" : 2802,
-            "key.offset" : 2802,
-            "key.parsed_declaration" : "public init(\n    _ info: Info,\n    layout : Layout = Layout(),\n    columns : Columns = .one,\n    header : AnyHeaderFooter? = nil,\n    footer : AnyHeaderFooter? = nil,\n    items : [AnyItem] = []\n    )",
-            "key.parsed_scope.end" : 127,
-            "key.parsed_scope.start" : 109,
+            "key.length" : 468,
+            "key.name" : "init(_:layouts:header:footer:items:configure:)",
+            "key.namelength" : 254,
+            "key.nameoffset" : 2456,
+            "key.offset" : 2456,
+            "key.parsed_declaration" : "public init(\n    _ info: Info,\n    layouts : SectionLayouts = .init(),\n    header : AnyHeaderFooter? = nil,\n    footer : AnyHeaderFooter? = nil,\n    items : [AnyItem] = [],\n    configure : Configure = { _ in }\n    )",
+            "key.parsed_scope.end" : 115,
+            "key.parsed_scope.start" : 96,
             "key.related_decls" : [
               {
-                "key.annotated_decl" : "init<Identifier>(_: Identifier, build: Build) where Identifier : Hashable<\/RelatedName>"
-              },
-              {
-                "key.annotated_decl" : "init<Info>(_: Info, build: Build) where Info : SectionInfo<\/RelatedName>"
+                "key.annotated_decl" : "init(_:configure:)<\/RelatedName>"
               },
               {
-                "key.annotated_decl" : "init<Identifier>(_: Identifier, layout: Layout = Layout(), columns: Columns = .one, header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = []) where Identifier : Hashable<\/RelatedName>"
+                "key.annotated_decl" : "init<Identifier>(_: Identifier, layouts: SectionLayouts = .init(), header: AnyHeaderFooter? = nil, footer: AnyHeaderFooter? = nil, items: [AnyItem] = [], configure: Configure = { _ in }) where Identifier : Hashable<\/RelatedName>"
               }
             ],
             "key.substructure" : [
@@ -69331,10 +71436,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 11,
-                    "key.offset" : 2812
+                    "key.offset" : 2466
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
                 "key.fully_annotated_decl" : "Info<\/decl.generic_type_param.name> : SectionInfo<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -69345,19 +71450,19 @@
                 "key.length" : 16,
                 "key.name" : "Info",
                 "key.namelength" : 4,
-                "key.nameoffset" : 2807,
-                "key.offset" : 2807,
+                "key.nameoffset" : 2461,
+                "key.offset" : 2461,
                 "key.parsed_declaration" : "public init (Section.Type) -> (Info, Section.Layout, Section.Columns, AnyHeaderFooter?, AnyHeaderFooter?, [AnyItem]) -> Section",
-            "key.typeusr" : "$s_6layout7columns6header6footer5items10ListableUI7SectionVx_AH6LayoutVAH7ColumnsVAF15AnyHeaderFooter_pSgANSayAF0K4Item_pGtcAF0H4InfoRzluD",
-            "key.usr" : "s:10ListableUI7SectionV_6layout7columns6header6footer5itemsACx_AC6LayoutVAC7ColumnsVAA15AnyHeaderFooter_pSgANSayAA0K4Item_pGtcAA0C4InfoRzlufc"
+            "key.typename" : " (Section.Type) -> (Info, SectionLayouts, AnyHeaderFooter?, AnyHeaderFooter?, [AnyItem], (inout Section) -> ()) -> Section",
+            "key.typeusr" : "$s_7layouts6header6footer5items9configure10ListableUI7SectionVx_AF0H7LayoutsVAF15AnyHeaderFooter_pSgALSayAF0J4Item_pGyAHzXEtcAF0H4InfoRzluD",
+            "key.usr" : "s:10ListableUI7SectionV_7layouts6header6footer5items9configureACx_AA0C7LayoutsVAA15AnyHeaderFooter_pSgALSayAA0J4Item_pGyACzXEtcAA0C4InfoRzlufc"
           },
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -69365,7 +71470,7 @@
             "key.name" : "MARK: Adding & Removing Single Items",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 3269
+            "key.offset" : 2944
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
@@ -69374,27 +71479,27 @@
               {
                 "key.attribute" : "source.decl.attribute.mutating",
                 "key.length" : 8,
-                "key.offset" : 3329
+                "key.offset" : 3004
               },
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 3322
+                "key.offset" : 2997
               }
             ],
             "key.bodylength" : 37,
-            "key.bodyoffset" : 3370,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 3045,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> mutating<\/syntaxtype.keyword> func<\/syntaxtype.keyword> add<\/decl.name>(_<\/decl.var.parameter.argument_label> item<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 70,
             "key.name" : "add(_:)",
             "key.namelength" : 21,
-            "key.nameoffset" : 3343,
-            "key.offset" : 3338,
+            "key.nameoffset" : 3018,
+            "key.offset" : 3013,
             "key.parsed_declaration" : "public mutating func add(_ item : AnyItem)",
-            "key.parsed_scope.end" : 136,
-            "key.parsed_scope.start" : 133,
+            "key.parsed_scope.end" : 124,
+            "key.parsed_scope.start" : 121,
             "key.substructure" : [
 
             ],
@@ -69409,22 +71514,22 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 3418
+                "key.offset" : 3093
               }
             ],
             "key.bodylength" : 26,
-            "key.bodyoffset" : 3482,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 3157,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: AnyItem<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 84,
             "key.name" : "+=(_:_:)",
             "key.namelength" : 39,
-            "key.nameoffset" : 3437,
-            "key.offset" : 3425,
+            "key.nameoffset" : 3112,
+            "key.offset" : 3100,
             "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : AnyItem)",
-            "key.parsed_scope.end" : 141,
-            "key.parsed_scope.start" : 138,
+            "key.parsed_scope.end" : 129,
+            "key.parsed_scope.start" : 126,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "+= (_: inout Content, _: Section)<\/RelatedName>"
@@ -69567,22 +71672,22 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 3519
+                "key.offset" : 3194
               }
             ],
             "key.bodylength" : 26,
-            "key.bodyoffset" : 3610,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 3285,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: Item<\/ref.struct><Content<\/ref.generic_type_param>><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 111,
             "key.name" : "+=(_:_:)",
             "key.namelength" : 66,
-            "key.nameoffset" : 3538,
-            "key.offset" : 3526,
+            "key.nameoffset" : 3213,
+            "key.offset" : 3201,
             "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : Item)",
-            "key.parsed_scope.end" : 146,
-            "key.parsed_scope.start" : 143,
+            "key.parsed_scope.end" : 134,
+            "key.parsed_scope.start" : 131,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "+= (_: inout Content, _: Section)<\/RelatedName>"
@@ -69718,10 +71823,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 11,
-                    "key.offset" : 3550
+                    "key.offset" : 3225
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -69732,11 +71837,11 @@
                 "key.length" : 19,
                 "key.name" : "Content",
                 "key.namelength" : 7,
-                "key.nameoffset" : 3542,
-                "key.offset" : 3542,
+                "key.nameoffset" : 3217,
+                "key.offset" : 3217,
                 "key.parsed_declaration" : "public static func += public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: Content<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 109,
             "key.name" : "+=(_:_:)",
             "key.namelength" : 60,
-            "key.nameoffset" : 3666,
-            "key.offset" : 3654,
+            "key.nameoffset" : 3341,
+            "key.offset" : 3329,
             "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : Content)",
-            "key.parsed_scope.end" : 151,
-            "key.parsed_scope.start" : 148,
+            "key.parsed_scope.end" : 139,
+            "key.parsed_scope.start" : 136,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "+= (_: inout Content, _: Section)<\/RelatedName>"
@@ -69904,10 +72009,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 11,
-                    "key.offset" : 3678
+                    "key.offset" : 3353
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -69918,11 +72023,11 @@
                 "key.length" : 19,
                 "key.name" : "Content",
                 "key.namelength" : 7,
-                "key.nameoffset" : 3670,
-                "key.offset" : 3670,
+                "key.nameoffset" : 3345,
+                "key.offset" : 3345,
                 "key.parsed_declaration" : "public static func += public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [AnyItem<\/ref.protocol>]<\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 90,
             "key.name" : "+=(_:_:)",
             "key.namelength" : 41,
-            "key.nameoffset" : 3857,
-            "key.offset" : 3845,
+            "key.nameoffset" : 3532,
+            "key.offset" : 3520,
             "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : [AnyItem])",
-            "key.parsed_scope.end" : 160,
-            "key.parsed_scope.start" : 157,
+            "key.parsed_scope.end" : 148,
+            "key.parsed_scope.start" : 145,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "+= (_: inout Content, _: Section)<\/RelatedName>"
@@ -70105,22 +72210,22 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 3945
+                "key.offset" : 3620
               }
             ],
             "key.bodylength" : 30,
-            "key.bodyoffset" : 4038,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 3713,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [Item<\/ref.struct><Content<\/ref.generic_type_param>>]<\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 117,
             "key.name" : "+=(_:_:)",
             "key.namelength" : 68,
-            "key.nameoffset" : 3964,
-            "key.offset" : 3952,
+            "key.nameoffset" : 3639,
+            "key.offset" : 3627,
             "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : [Item])",
-            "key.parsed_scope.end" : 165,
-            "key.parsed_scope.start" : 162,
+            "key.parsed_scope.end" : 153,
+            "key.parsed_scope.start" : 150,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "+= (_: inout Content, _: Section)<\/RelatedName>"
@@ -70256,10 +72361,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 11,
-                    "key.offset" : 3976
+                    "key.offset" : 3651
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -70270,11 +72375,11 @@
                 "key.length" : 19,
                 "key.name" : "Content",
                 "key.namelength" : 7,
-                "key.nameoffset" : 3968,
-                "key.offset" : 3968,
+                "key.nameoffset" : 3643,
+                "key.offset" : 3643,
                 "key.parsed_declaration" : "public static func += public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> func<\/syntaxtype.keyword> += <\/decl.name><Content<\/decl.generic_type_param.name><\/decl.generic_type_param>>(lhs<\/decl.var.parameter.name>: inout<\/syntaxtype.keyword> Section<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, rhs<\/decl.var.parameter.name>: [Content<\/ref.generic_type_param>]<\/decl.var.parameter.type><\/decl.var.parameter>) where<\/syntaxtype.keyword> Content : ItemContent<\/ref.protocol><\/decl.generic_type_requirement><\/decl.function.operator.infix>",
             "key.kind" : "source.lang.swift.decl.function.method.static",
             "key.length" : 128,
             "key.name" : "+=(_:_:)",
             "key.namelength" : 62,
-            "key.nameoffset" : 4098,
-            "key.offset" : 4086,
+            "key.nameoffset" : 3773,
+            "key.offset" : 3761,
             "key.parsed_declaration" : "public static func += (lhs : inout Section, rhs : [Content])",
-            "key.parsed_scope.end" : 170,
-            "key.parsed_scope.start" : 167,
+            "key.parsed_scope.end" : 158,
+            "key.parsed_scope.start" : 155,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "+= (_: inout Content, _: Section)<\/RelatedName>"
@@ -70442,10 +72547,10 @@
                   {
                     "key.kind" : "source.lang.swift.structure.elem.typeref",
                     "key.length" : 11,
-                    "key.offset" : 4110
+                    "key.offset" : 3785
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
                 "key.fully_annotated_decl" : "Content<\/decl.generic_type_param.name> : ItemContent<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
                 "key.inheritedtypes" : [
                   {
@@ -70456,11 +72561,11 @@
                 "key.length" : 19,
                 "key.name" : "Content",
                 "key.namelength" : 7,
-                "key.nameoffset" : 4102,
-                "key.offset" : 4102,
+                "key.nameoffset" : 3777,
+                "key.offset" : 3777,
                 "key.parsed_declaration" : "public static func += internal<\/syntaxtype.keyword> func<\/syntaxtype.keyword> itemsUpTo<\/decl.name>(limit<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> [AnyItem<\/ref.protocol>]<\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 150,
             "key.name" : "itemsUpTo(limit:)",
             "key.namelength" : 22,
-            "key.nameoffset" : 4278,
-            "key.offset" : 4273,
+            "key.nameoffset" : 3953,
+            "key.offset" : 3948,
             "key.parsed_declaration" : "internal func itemsUpTo(limit : Int) -> [AnyItem]",
-            "key.parsed_scope.end" : 181,
-            "key.parsed_scope.start" : 176,
+            "key.parsed_scope.end" : 169,
+            "key.parsed_scope.start" : 164,
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let end: Int<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> end<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 38,
                 "key.name" : "end",
                 "key.namelength" : 3,
-                "key.nameoffset" : 4332,
-                "key.offset" : 4328,
+                "key.nameoffset" : 4007,
+                "key.offset" : 4003,
                 "key.parsed_declaration" : "let end = min(self.items.count, limit)",
-                "key.parsed_scope.end" : 178,
-                "key.parsed_scope.start" : 178,
+                "key.parsed_scope.end" : 166,
+                "key.parsed_scope.start" : 166,
                 "key.typename" : "Int",
                 "key.typeusr" : "$sSiD",
                 "key.usr" : "s:10ListableUI7SectionV9itemsUpTo5limitSayAA7AnyItem_pGSi_tF3endL_Sivp"
@@ -70529,298 +72634,6 @@
         "key.typeusr" : "$s10ListableUI7SectionVmD",
         "key.usr" : "s:10ListableUI7SectionV"
       },
-      {
-        "key.annotated_decl" : "public struct Section<\/Declaration>",
-        "key.bodylength" : 1007,
-        "key.bodyoffset" : 4447,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Section<\/decl.name><\/decl.struct>",
-        "key.kind" : "source.lang.swift.decl.extension",
-        "key.length" : 1027,
-        "key.name" : "Section",
-        "key.namelength" : 7,
-        "key.nameoffset" : 4438,
-        "key.offset" : 4428,
-        "key.parsed_declaration" : "extension Section",
-        "key.parsed_scope.end" : 220,
-        "key.parsed_scope.start" : 185,
-        "key.substructure" : [
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public struct Layout : Equatable<\/Type><\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 4452
-              }
-            ],
-            "key.bodylength" : 392,
-            "key.bodyoffset" : 4490,
-            "key.elements" : [
-              {
-                "key.kind" : "source.lang.swift.structure.elem.typeref",
-                "key.length" : 9,
-                "key.offset" : 4475
-              }
-            ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Layout<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
-            "key.inheritedtypes" : [
-              {
-                "key.name" : "Equatable"
-              }
-            ],
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 424,
-            "key.name" : "Layout",
-            "key.namelength" : 6,
-            "key.nameoffset" : 4466,
-            "key.offset" : 4459,
-            "key.parsed_declaration" : "public struct Layout : Equatable",
-            "key.parsed_scope.end" : 199,
-            "key.parsed_scope.start" : 187,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var width: CustomWidth<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 4499
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: CustomWidth<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 23,
-                "key.name" : "width",
-                "key.namelength" : 5,
-                "key.nameoffset" : 4510,
-                "key.offset" : 4506,
-                "key.parsed_declaration" : "public var width : CustomWidth",
-                "key.parsed_scope.end" : 189,
-                "key.parsed_scope.start" : 189,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CustomWidth",
-                "key.typeusr" : "$s10ListableUI11CustomWidthOD",
-                "key.usr" : "s:10ListableUI7SectionV6LayoutV5widthAA11CustomWidthOvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var customInterSectionSpacing: CGFloat<\/Type>?<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 4603
-                  }
-                ],
-                "key.doc.column" : 20,
-                "key.doc.comment" : "Overrides the calculated spacing after this section",
-                "key.doc.declaration" : "public var customInterSectionSpacing: CGFloat?",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-                "key.doc.full_as_xml" : "customInterSectionSpacing<\/Name>s:10ListableUI7SectionV6LayoutV011customInterC7Spacing12CoreGraphics7CGFloatVSgvp<\/USR>public var customInterSectionSpacing: CGFloat?<\/Declaration>Overrides the calculated spacing after this section<\/Para><\/Abstract><\/CommentParts><\/Other>",
-                "key.doc.line" : 192,
-                "key.doc.name" : "customInterSectionSpacing",
-                "key.doc.type" : "Other",
-                "key.doclength" : 56,
-                "key.docoffset" : 4539,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> customInterSectionSpacing<\/decl.name>: CGFloat<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 40,
-                "key.name" : "customInterSectionSpacing",
-                "key.namelength" : 25,
-                "key.nameoffset" : 4614,
-                "key.offset" : 4610,
-                "key.parsed_declaration" : "public var customInterSectionSpacing : CGFloat?",
-                "key.parsed_scope.end" : 192,
-                "key.parsed_scope.start" : 192,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat?",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVSgD",
-                "key.usr" : "s:10ListableUI7SectionV6LayoutV011customInterC7Spacing12CoreGraphics7CGFloatVSgvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public init(width: CustomWidth<\/Type> = .default, customInterSectionSpacing: CGFloat<\/Type>? = nil)<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 4668
-                  }
-                ],
-                "key.bodylength" : 111,
-                "key.bodyoffset" : 4765,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: CustomWidth<\/ref.enum><\/decl.var.parameter.type> = .default<\/decl.var.parameter>, customInterSectionSpacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>)<\/decl.function.constructor>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 202,
-                "key.name" : "init(width:customInterSectionSpacing:)",
-                "key.namelength" : 80,
-                "key.nameoffset" : 4675,
-                "key.offset" : 4675,
-                "key.parsed_declaration" : "public init(width : CustomWidth = .default, customInterSectionSpacing : CGFloat? = nil)",
-                "key.parsed_scope.end" : 198,
-                "key.parsed_scope.start" : 194,
-                "key.substructure" : [
-
-                ],
-                "key.typename" : "(Section.Layout.Type) -> (CustomWidth, CGFloat?) -> Section.Layout",
-                "key.typeusr" : "$s5width25customInterSectionSpacing10ListableUI0D0V6LayoutVAC11CustomWidthO_12CoreGraphics7CGFloatVSgtcD",
-                "key.usr" : "s:10ListableUI7SectionV6LayoutV5width011customInterC7SpacingAeA11CustomWidthO_12CoreGraphics7CGFloatVSgtcfc"
-              }
-            ],
-            "key.typename" : "Section.Layout.Type",
-            "key.typeusr" : "$s10ListableUI7SectionV6LayoutVmD",
-            "key.usr" : "s:10ListableUI7SectionV6LayoutV"
-          },
-          {
-            "key.accessibility" : "source.lang.swift.accessibility.public",
-            "key.annotated_decl" : "public struct Columns<\/Declaration>",
-            "key.attributes" : [
-              {
-                "key.attribute" : "source.decl.attribute.public",
-                "key.length" : 6,
-                "key.offset" : 4898
-              }
-            ],
-            "key.bodylength" : 527,
-            "key.bodyoffset" : 4925,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Columns<\/decl.name><\/decl.struct>",
-            "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 548,
-            "key.name" : "Columns",
-            "key.namelength" : 7,
-            "key.nameoffset" : 4912,
-            "key.offset" : 4905,
-            "key.parsed_declaration" : "public struct Columns",
-            "key.parsed_scope.end" : 219,
-            "key.parsed_scope.start" : 202,
-            "key.substructure" : [
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var count: Int<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 4934
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> count<\/decl.name>: Int<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 15,
-                "key.name" : "count",
-                "key.namelength" : 5,
-                "key.nameoffset" : 4945,
-                "key.offset" : 4941,
-                "key.parsed_declaration" : "public var count : Int",
-                "key.parsed_scope.end" : 204,
-                "key.parsed_scope.start" : 204,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "Int",
-                "key.typeusr" : "$sSiD",
-                "key.usr" : "s:10ListableUI7SectionV7ColumnsV5countSivp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public var spacing: CGFloat<\/Type><\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 4965
-                  }
-                ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> spacing<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
-                "key.kind" : "source.lang.swift.decl.var.instance",
-                "key.length" : 21,
-                "key.name" : "spacing",
-                "key.namelength" : 7,
-                "key.nameoffset" : 4976,
-                "key.offset" : 4972,
-                "key.parsed_declaration" : "public var spacing : CGFloat",
-                "key.parsed_scope.end" : 205,
-                "key.parsed_scope.start" : 205,
-                "key.setter_accessibility" : "source.lang.swift.accessibility.public",
-                "key.typename" : "CGFloat",
-                "key.typeusr" : "$s12CoreGraphics7CGFloatVD",
-                "key.usr" : "s:10ListableUI7SectionV7ColumnsV7spacing12CoreGraphics7CGFloatVvp"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public static var one: Columns<\/Type> { get }<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 5011
-                  }
-                ],
-                "key.bodylength" : 60,
-                "key.bodyoffset" : 5044,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> one<\/decl.name>: Columns<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
-                "key.kind" : "source.lang.swift.decl.var.static",
-                "key.length" : 87,
-                "key.name" : "one",
-                "key.namelength" : 3,
-                "key.nameoffset" : 5029,
-                "key.offset" : 5018,
-                "key.parsed_declaration" : "public static var one : Columns",
-                "key.parsed_scope.end" : 209,
-                "key.parsed_scope.start" : 207,
-                "key.typename" : "Section.Columns",
-                "key.typeusr" : "$s10ListableUI7SectionV7ColumnsVD",
-                "key.usr" : "s:10ListableUI7SectionV7ColumnsV3oneAEvpZ"
-              },
-              {
-                "key.accessibility" : "source.lang.swift.accessibility.public",
-                "key.annotated_decl" : "public init(count: Int<\/Type> = 1, spacing: CGFloat<\/Type> = 0.0)<\/Declaration>",
-                "key.attributes" : [
-                  {
-                    "key.attribute" : "source.decl.attribute.public",
-                    "key.length" : 6,
-                    "key.offset" : 5123
-                  }
-                ],
-                "key.bodylength" : 260,
-                "key.bodyoffset" : 5186,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
-                "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(count<\/decl.var.parameter.argument_label>: Int<\/ref.struct><\/decl.var.parameter.type> = 1<\/decl.var.parameter>, spacing<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
-                "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 317,
-                "key.name" : "init(count:spacing:)",
-                "key.namelength" : 46,
-                "key.nameoffset" : 5130,
-                "key.offset" : 5130,
-                "key.parsed_declaration" : "public init(count : Int = 1, spacing : CGFloat = 0.0)",
-                "key.parsed_scope.end" : 218,
-                "key.parsed_scope.start" : 211,
-                "key.substructure" : [
-
-                ],
-                "key.typename" : "(Section.Columns.Type) -> (Int, CGFloat) -> Section.Columns",
-                "key.typeusr" : "$s5count7spacing10ListableUI7SectionV7ColumnsVSi_12CoreGraphics7CGFloatVtcD",
-                "key.usr" : "s:10ListableUI7SectionV7ColumnsV5count7spacingAESi_12CoreGraphics7CGFloatVtcfc"
-              }
-            ],
-            "key.typename" : "Section.Columns.Type",
-            "key.typeusr" : "$s10ListableUI7SectionV7ColumnsVmD",
-            "key.usr" : "s:10ListableUI7SectionV7ColumnsV"
-          }
-        ],
-        "key.typename" : "Section.Type",
-        "key.typeusr" : "$s10ListableUI7SectionVmD",
-        "key.usr" : "s:10ListableUI7SectionV"
-      },
       {
         "key.accessibility" : "source.lang.swift.accessibility.public",
         "key.annotated_decl" : "public protocol SectionInfo : AnySectionInfo<\/Type><\/Declaration>",
@@ -70828,19 +72641,19 @@
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 5458
+            "key.offset" : 4103
           }
         ],
         "key.bodylength" : 165,
-        "key.bodyoffset" : 5504,
+        "key.bodyoffset" : 4149,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 14,
-            "key.offset" : 5488
+            "key.offset" : 4133
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> SectionInfo<\/decl.name> : AnySectionInfo<\/ref.protocol><\/decl.protocol>",
         "key.inheritedtypes" : [
           {
@@ -70851,11 +72664,11 @@
         "key.length" : 205,
         "key.name" : "SectionInfo",
         "key.namelength" : 11,
-        "key.nameoffset" : 5474,
-        "key.offset" : 5465,
+        "key.nameoffset" : 4119,
+        "key.offset" : 4110,
         "key.parsed_declaration" : "public protocol SectionInfo : AnySectionInfo",
-        "key.parsed_scope.end" : 232,
-        "key.parsed_scope.start" : 223,
+        "key.parsed_scope.end" : 182,
+        "key.parsed_scope.start" : 173,
         "key.substructure" : [
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -70863,24 +72676,24 @@
             "key.name" : "MARK: Identifying Content & Changes",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 5519
+            "key.offset" : 4164
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "var identifier: Identifier<\/Type><Self<\/Type>> { get }<\/Declaration>",
             "key.bodylength" : 5,
-            "key.bodyoffset" : 5606,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 4251,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.class><Self<\/ref.generic_type_param>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
             "key.name" : "identifier",
             "key.namelength" : 10,
-            "key.nameoffset" : 5575,
-            "key.offset" : 5571,
+            "key.nameoffset" : 4220,
+            "key.offset" : 4216,
             "key.parsed_declaration" : "var identifier : Identifier",
-            "key.parsed_scope.end" : 229,
-            "key.parsed_scope.start" : 229,
+            "key.parsed_scope.end" : 179,
+            "key.parsed_scope.start" : 179,
             "key.typename" : "Identifier",
             "key.typeusr" : "$s10ListableUI10IdentifierCyxGD",
             "key.usr" : "s:10ListableUI11SectionInfoP10identifierAA10IdentifierCyxGvp"
@@ -70888,17 +72701,17 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func wasMoved(comparedTo other: Self<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: Self<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 46,
             "key.name" : "wasMoved(comparedTo:)",
             "key.namelength" : 33,
-            "key.nameoffset" : 5627,
-            "key.offset" : 5622,
+            "key.nameoffset" : 4272,
+            "key.offset" : 4267,
             "key.parsed_declaration" : "func wasMoved(comparedTo other : Self) -> Bool",
-            "key.parsed_scope.end" : 231,
-            "key.parsed_scope.start" : 231,
+            "key.parsed_scope.end" : 181,
+            "key.parsed_scope.start" : 181,
             "key.substructure" : [
 
             ],
@@ -70918,22 +72731,22 @@
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 5673
+            "key.offset" : 4318
           }
         ],
         "key.bodylength" : 178,
-        "key.bodyoffset" : 5705,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+        "key.bodyoffset" : 4350,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> AnySectionInfo<\/decl.name><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.protocol",
         "key.length" : 204,
         "key.name" : "AnySectionInfo",
         "key.namelength" : 14,
-        "key.nameoffset" : 5689,
-        "key.offset" : 5680,
+        "key.nameoffset" : 4334,
+        "key.offset" : 4325,
         "key.parsed_declaration" : "public protocol AnySectionInfo",
-        "key.parsed_scope.end" : 244,
-        "key.parsed_scope.start" : 235,
+        "key.parsed_scope.end" : 194,
+        "key.parsed_scope.start" : 185,
         "key.substructure" : [
           {
             "key.kind" : "source.lang.swift.syntaxtype.comment.mark",
@@ -70941,24 +72754,24 @@
             "key.name" : "MARK: Identifying Content & Changes",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 5720
+            "key.offset" : 4365
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "var anyIdentifier: AnyIdentifier<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 5,
-            "key.bodyoffset" : 5807,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 4452,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyIdentifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 41,
             "key.name" : "anyIdentifier",
             "key.namelength" : 13,
-            "key.nameoffset" : 5776,
-            "key.offset" : 5772,
+            "key.nameoffset" : 4421,
+            "key.offset" : 4417,
             "key.parsed_declaration" : "var anyIdentifier : AnyIdentifier",
-            "key.parsed_scope.end" : 241,
-            "key.parsed_scope.start" : 241,
+            "key.parsed_scope.end" : 191,
+            "key.parsed_scope.start" : 191,
             "key.typename" : "AnyIdentifier",
             "key.typeusr" : "$s10ListableUI13AnyIdentifierCD",
             "key.usr" : "s:10ListableUI14AnySectionInfoP13anyIdentifierAA0cG0Cvp"
@@ -70966,17 +72779,17 @@
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func anyWasMoved(comparedTo other: AnySectionInfo<\/Type>) -> Bool<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> anyWasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnySectionInfo<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 59,
             "key.name" : "anyWasMoved(comparedTo:)",
             "key.namelength" : 46,
-            "key.nameoffset" : 5828,
-            "key.offset" : 5823,
+            "key.nameoffset" : 4473,
+            "key.offset" : 4468,
             "key.parsed_declaration" : "func anyWasMoved(comparedTo other : AnySectionInfo) -> Bool",
-            "key.parsed_scope.end" : 243,
-            "key.parsed_scope.start" : 243,
+            "key.parsed_scope.end" : 193,
+            "key.parsed_scope.start" : 193,
             "key.substructure" : [
 
             ],
@@ -70996,39 +72809,39 @@
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 5887
+            "key.offset" : 4532
           }
         ],
         "key.bodylength" : 291,
-        "key.bodyoffset" : 5917,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+        "key.bodyoffset" : 4562,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> SectionInfo<\/decl.name> : AnySectionInfo<\/ref.protocol><\/decl.protocol>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 315,
         "key.name" : "SectionInfo",
         "key.namelength" : 11,
-        "key.nameoffset" : 5904,
-        "key.offset" : 5894,
+        "key.nameoffset" : 4549,
+        "key.offset" : 4539,
         "key.parsed_declaration" : "public extension SectionInfo",
-        "key.parsed_scope.end" : 261,
-        "key.parsed_scope.start" : 247,
+        "key.parsed_scope.end" : 211,
+        "key.parsed_scope.start" : 197,
         "key.substructure" : [
           {
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "var anyIdentifier: AnyIdentifier<\/Type> { get }<\/Declaration>",
             "key.bodylength" : 29,
-            "key.bodyoffset" : 5957,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 4602,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> anyIdentifier<\/decl.name>: AnyIdentifier<\/ref.class><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 65,
             "key.name" : "anyIdentifier",
             "key.namelength" : 13,
-            "key.nameoffset" : 5926,
-            "key.offset" : 5922,
+            "key.nameoffset" : 4571,
+            "key.offset" : 4567,
             "key.parsed_declaration" : "var anyIdentifier : AnyIdentifier",
-            "key.parsed_scope.end" : 251,
-            "key.parsed_scope.start" : 249,
+            "key.parsed_scope.end" : 201,
+            "key.parsed_scope.start" : 199,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "anyIdentifier<\/RelatedName>"
@@ -71042,18 +72855,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.public",
             "key.annotated_decl" : "func anyWasMoved(comparedTo other: AnySectionInfo<\/Type>) -> Bool<\/Type><\/Declaration>",
             "key.bodylength" : 144,
-            "key.bodyoffset" : 6062,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 4707,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> anyWasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: AnySectionInfo<\/ref.protocol><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 210,
             "key.name" : "anyWasMoved(comparedTo:)",
             "key.namelength" : 46,
-            "key.nameoffset" : 6002,
-            "key.offset" : 5997,
+            "key.nameoffset" : 4647,
+            "key.offset" : 4642,
             "key.parsed_declaration" : "func anyWasMoved(comparedTo other : AnySectionInfo) -> Bool",
-            "key.parsed_scope.end" : 260,
-            "key.parsed_scope.start" : 253,
+            "key.parsed_scope.end" : 210,
+            "key.parsed_scope.start" : 203,
             "key.related_decls" : [
               {
                 "key.annotated_decl" : "anyWasMoved(comparedTo: AnySectionInfo) -> Bool<\/RelatedName>"
@@ -71078,19 +72891,19 @@
           {
             "key.attribute" : "source.decl.attribute.private",
             "key.length" : 7,
-            "key.offset" : 6212
+            "key.offset" : 4857
           }
         ],
         "key.bodylength" : 346,
-        "key.bodyoffset" : 6278,
+        "key.bodyoffset" : 4923,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 11,
-            "key.offset" : 6265
+            "key.offset" : 4910
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
         "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HashableSectionInfo<\/decl.name><Value<\/decl.generic_type_param.name><\/decl.generic_type_param>> : SectionInfo<\/ref.protocol> where<\/syntaxtype.keyword> Value : Hashable<\/ref.protocol><\/decl.generic_type_requirement><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -71101,11 +72914,11 @@
         "key.length" : 405,
         "key.name" : "HashableSectionInfo",
         "key.namelength" : 19,
-        "key.nameoffset" : 6227,
-        "key.offset" : 6220,
+        "key.nameoffset" : 4872,
+        "key.offset" : 4865,
         "key.parsed_declaration" : "private struct HashableSectionInfo : SectionInfo",
-        "key.parsed_scope.end" : 283,
-        "key.parsed_scope.start" : 264,
+        "key.parsed_scope.end" : 233,
+        "key.parsed_scope.start" : 214,
         "key.substructure" : [
           {
             "key.annotated_decl" : "Value : Hashable<\/Type><\/Declaration>",
@@ -71113,10 +72926,10 @@
               {
                 "key.kind" : "source.lang.swift.structure.elem.typeref",
                 "key.length" : 8,
-                "key.offset" : 6253
+                "key.offset" : 4898
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "Value<\/decl.generic_type_param.name> : Hashable<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
             "key.inheritedtypes" : [
               {
@@ -71127,11 +72940,11 @@
             "key.length" : 14,
             "key.name" : "Value",
             "key.namelength" : 5,
-            "key.nameoffset" : 6247,
-            "key.offset" : 6247,
+            "key.nameoffset" : 4892,
+            "key.offset" : 4892,
             "key.parsed_declaration" : "private struct HashableSectionInfovar value: Value<\/Type><\/Declaration>",
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> value<\/decl.name>: Value<\/ref.generic_type_param><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 17,
             "key.name" : "value",
             "key.namelength" : 5,
-            "key.nameoffset" : 6287,
-            "key.offset" : 6283,
+            "key.nameoffset" : 4932,
+            "key.offset" : 4928,
             "key.parsed_declaration" : "var value : Value",
-            "key.parsed_scope.end" : 266,
-            "key.parsed_scope.start" : 266,
+            "key.parsed_scope.end" : 216,
+            "key.parsed_scope.start" : 216,
             "key.setter_accessibility" : "source.lang.swift.accessibility.internal",
             "key.typename" : "Value",
             "key.typeusr" : "$sxD",
@@ -71159,18 +72972,18 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "init(_ value: Value<\/Type>)<\/Declaration>",
             "key.bodylength" : 32,
-            "key.bodyoffset" : 6337,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 4982,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: Value<\/ref.generic_type_param><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 60,
             "key.name" : "init(_:)",
             "key.namelength" : 21,
-            "key.nameoffset" : 6310,
-            "key.offset" : 6310,
+            "key.nameoffset" : 4955,
+            "key.offset" : 4955,
             "key.parsed_declaration" : "init(_ value : Value)",
-            "key.parsed_scope.end" : 271,
-            "key.parsed_scope.start" : 268,
+            "key.parsed_scope.end" : 221,
+            "key.parsed_scope.start" : 218,
             "key.substructure" : [
 
             ],
@@ -71184,29 +72997,29 @@
             "key.name" : "MARK: SectionInfo",
             "key.namelength" : 0,
             "key.nameoffset" : 0,
-            "key.offset" : 6383
+            "key.offset" : 5028
           },
           {
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "var identifier: Identifier<\/Type><HashableSectionInfo<\/Type>> { get }<\/Declaration>",
             "key.bodylength" : 38,
-            "key.bodyoffset" : 6460,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 5105,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> identifier<\/decl.name>: Identifier<\/ref.class><HashableSectionInfo<\/ref.struct>><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 89,
             "key.name" : "identifier",
             "key.namelength" : 10,
-            "key.nameoffset" : 6414,
-            "key.offset" : 6410,
+            "key.nameoffset" : 5059,
+            "key.offset" : 5055,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI11SectionInfoP10identifierAA10IdentifierCyxGvp"
               }
             ],
             "key.parsed_declaration" : "var identifier : Identifier",
-            "key.parsed_scope.end" : 277,
-            "key.parsed_scope.start" : 275,
+            "key.parsed_scope.end" : 227,
+            "key.parsed_scope.start" : 225,
             "key.typename" : "Identifier>",
             "key.typeusr" : "$s10ListableUI10IdentifierCyAA19HashableSectionInfo33_FA8ED5564F05383C9BFB9054A4B67C50LLVyxGGD",
             "key.usr" : "s:10ListableUI19HashableSectionInfo33_FA8ED5564F05383C9BFB9054A4B67C50LLV10identifierAA10IdentifierCyADyxGGvp"
@@ -71215,23 +73028,23 @@
             "key.accessibility" : "source.lang.swift.accessibility.internal",
             "key.annotated_decl" : "func wasMoved(comparedTo other: HashableSectionInfo<\/Type>) -> Bool<\/Type><\/Declaration>",
             "key.bodylength" : 46,
-            "key.bodyoffset" : 6576,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Section.swift",
+            "key.bodyoffset" : 5221,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/Section.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> wasMoved<\/decl.name>(comparedTo<\/decl.var.parameter.argument_label> other<\/decl.var.parameter.name>: HashableSectionInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Bool<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 114,
             "key.name" : "wasMoved(comparedTo:)",
             "key.namelength" : 48,
-            "key.nameoffset" : 6514,
-            "key.offset" : 6509,
+            "key.nameoffset" : 5159,
+            "key.offset" : 5154,
             "key.overrides" : [
               {
                 "key.usr" : "s:10ListableUI11SectionInfoP8wasMoved10comparedToSbx_tF"
               }
             ],
             "key.parsed_declaration" : "func wasMoved(comparedTo other : HashableSectionInfo) -> Bool",
-            "key.parsed_scope.end" : 282,
-            "key.parsed_scope.start" : 279,
+            "key.parsed_scope.end" : 232,
+            "key.parsed_scope.start" : 229,
             "key.substructure" : [
 
             ],
@@ -71247,9 +73060,296 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift" : {
+    "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
+    "key.length" : 3464,
+    "key.offset" : 0,
+    "key.substructure" : [
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public struct SectionLayouts<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 1472
+          }
+        ],
+        "key.bodylength" : 1268,
+        "key.bodyoffset" : 1502,
+        "key.doc.column" : 15,
+        "key.doc.comment" : "\n`SectionLayouts` allows you to provide `ListLayout`-specific layout configuration for\nindividual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.\n\nFor example, if you want to specify a custom layout for table layouts, you\nwould do the following on your section:\n\n```\nmySection.layouts.table = .init(\n    width: .fill\n)\n```\n\nAnd then, when the `Section` is used within a `.table` style\nlist layout, the provided layout will be used.\n\nIf you plan on swapping between multiple `ListLayout` types on your list,\nyou can provide multiple layouts. The correct one will be used at the correct time:\n\n```\nmySection.layouts.table = .init(\n    width: .fill\n)\n\nmySection.layouts.otherLayout = .init(\n    width: 300,\n    alignment: .left\n)\n```\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `SectionLayouts`,\nto provide easier access to your layout-specific `SectionLayoutsValue` type, like so:\n\n```\nextension SectionLayouts {\n    public var table : TableAppearance.Section.Layout {\n        get { self[TableAppearance.Section.Layout.self] }\n        set { self[TableAppearance.Section.Layout.self] = newValue }\n    }\n}\n```",
+        "key.doc.declaration" : "public struct SectionLayouts",
+        "key.doc.discussion" : [
+          {
+            "Para" : "For example, if you want to specify a custom layout for table layouts, you would do the following on your section:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "And then, when the `Section` is used within a `.table` style list layout, the provided layout will be used."
+          },
+          {
+            "Para" : "If you plan on swapping between multiple `ListLayout` types on your list, you can provide multiple layouts. The correct one will be used at the correct time:"
+          },
+          {
+            "CodeListing" : ""
+          },
+          {
+            "Para" : "When implementing your own custom layout, you should add an extension to `SectionLayouts`, to provide easier access to your layout-specific `SectionLayoutsValue` type, like so:"
+          },
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+        "key.doc.full_as_xml" : "SectionLayouts<\/Name>s:10ListableUI14SectionLayoutsV<\/USR>public struct SectionLayouts<\/Declaration>SectionLayouts<\/codeVoice> allows you to provide ListLayout<\/codeVoice>-specific layout configuration for individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.<\/Para><\/Abstract>For example, if you want to specify a custom layout for table layouts, you would do the following on your section:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>And then, when the Section<\/codeVoice> is used within a .table<\/codeVoice> style list layout, the provided layout will be used.<\/Para>If you plan on swapping between multiple ListLayout<\/codeVoice> types on your list, you can provide multiple layouts. The correct one will be used at the correct time:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to SectionLayouts<\/codeVoice>, to provide easier access to your layout-specific SectionLayoutsValue<\/codeVoice> type, like so:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 54,
+        "key.doc.name" : "SectionLayouts",
+        "key.doc.type" : "Class",
+        "key.doclength" : 1360,
+        "key.docoffset" : 112,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SectionLayouts<\/decl.name><\/decl.struct>",
+        "key.kind" : "source.lang.swift.decl.struct",
+        "key.length" : 1292,
+        "key.name" : "SectionLayouts",
+        "key.namelength" : 14,
+        "key.nameoffset" : 1486,
+        "key.offset" : 1479,
+        "key.parsed_declaration" : "public struct SectionLayouts",
+        "key.parsed_scope.end" : 88,
+        "key.parsed_scope.start" : 54,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 1648
+              }
+            ],
+            "key.bodylength" : 70,
+            "key.bodyoffset" : 1720,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Creates a new instance of the layouts, with an optional `configure`\nclosure, to allow you to set up styling inline.",
+            "key.doc.declaration" : "public init(_ configure: (inout `Self`) -> () = { _ in })",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+            "key.doc.full_as_xml" : "init(_:)<\/Name>s:10ListableUI14SectionLayoutsVyACyACzXEcfc<\/USR>public init(_ configure: (inout `Self`) -> () = { _ in })<\/Declaration>Creates a new instance of the layouts, with an optional configure<\/codeVoice> closure, to allow you to set up styling inline.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.line" : 58,
+            "key.doc.name" : "init(_:)",
+            "key.doc.type" : "Function",
+            "key.doclength" : 128,
+            "key.docoffset" : 1516,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> configure<\/decl.var.parameter.name>: (inout<\/syntaxtype.keyword> `Self`<\/decl.var.parameter.type><\/decl.var.parameter>) -> ()<\/tuple><\/decl.function.returntype><\/decl.var.parameter.type> = { _ in }<\/decl.var.parameter>)<\/decl.function.constructor>",
+            "key.kind" : "source.lang.swift.decl.function.method.instance",
+            "key.length" : 136,
+            "key.name" : "init(_:)",
+            "key.namelength" : 63,
+            "key.nameoffset" : 1655,
+            "key.offset" : 1655,
+            "key.parsed_declaration" : "public init(\n    _ configure : (inout Self) -> () = { _ in }\n)",
+            "key.parsed_scope.end" : 64,
+            "key.parsed_scope.start" : 58,
+            "key.substructure" : [
+
+            ],
+            "key.typename" : "(SectionLayouts.Type) -> ((inout SectionLayouts) -> ()) -> SectionLayouts",
+            "key.typeusr" : "$sy10ListableUI14SectionLayoutsVyACzXEcD",
+            "key.usr" : "s:10ListableUI14SectionLayoutsVyACyACzXEcfc"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.private",
+            "key.annotated_decl" : "private var storage: ContentLayoutsStorage<\/Type><\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.private",
+                "key.length" : 7,
+                "key.offset" : 1801
+              }
+            ],
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+            "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> var<\/syntaxtype.keyword> storage<\/decl.name>: ContentLayoutsStorage<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
+            "key.kind" : "source.lang.swift.decl.var.instance",
+            "key.length" : 35,
+            "key.name" : "storage",
+            "key.namelength" : 7,
+            "key.nameoffset" : 1813,
+            "key.offset" : 1809,
+            "key.parsed_declaration" : "private var storage : ContentLayoutsStorage",
+            "key.parsed_scope.end" : 66,
+            "key.parsed_scope.start" : 66,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.private",
+            "key.typename" : "ContentLayoutsStorage",
+            "key.typeusr" : "$s10ListableUI21ContentLayoutsStorageVD",
+            "key.usr" : "s:10ListableUI14SectionLayoutsV7storage33_0ABDCA340DBDD359496A50C3AD6DC411LLAA07ContentD7StorageVvp"
+          },
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "public subscript<ValueType>(valueType: ValueType<\/Type>.Type) -> ValueType<\/Type> where ValueType : SectionLayoutsValue<\/Type> { get set }<\/Declaration>",
+            "key.attributes" : [
+              {
+                "key.attribute" : "source.decl.attribute.public",
+                "key.length" : 6,
+                "key.offset" : 2535
+              }
+            ],
+            "key.bodylength" : 141,
+            "key.bodyoffset" : 2627,
+            "key.doc.column" : 12,
+            "key.doc.comment" : "Allows accessing the various `SectionLayoutsValue`s stored within the object.\nThis method will return the `defaultValue` for a value if none is set.\n\nNote\n----\nWhen implementing your own custom layout, you should add an extension to `SectionLayouts`,\nto provide easier access to your layout-specific `SectionLayoutsValue` type.\n\n```\nextension SectionLayouts {\n    public var table : TableAppearance.Section.Layout {\n        get { self[TableAppearance.Section.Layout.self] }\n        set { self[TableAppearance.Section.Layout.self] = newValue }\n    }\n}\n```",
+            "key.doc.declaration" : "public subscript(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.SectionLayoutsValue { get set }",
+            "key.doc.discussion" : [
+              {
+                "Para" : "When implementing your own custom layout, you should add an extension to `SectionLayouts`, to provide easier access to your layout-specific `SectionLayoutsValue` type."
+              },
+              {
+                "CodeListing" : ""
+              }
+            ],
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+            "key.doc.full_as_xml" : "subscript(_:)<\/Name>s:10ListableUI14SectionLayoutsVyxxmcAA0cD5ValueRzluip<\/USR>public subscript<ValueType>(valueType: ValueType.Type) -> ValueType where ValueType : ListableUI.SectionLayoutsValue { get set }<\/Declaration>Allows accessing the various SectionLayoutsValue<\/codeVoice>s stored within the object. This method will return the defaultValue<\/codeVoice> for a value if none is set.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>When implementing your own custom layout, you should add an extension to SectionLayouts<\/codeVoice>, to provide easier access to your layout-specific SectionLayoutsValue<\/codeVoice> type.<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.line" : 84,
+            "key.doc.name" : "subscript(_:)",
+            "key.doc.type" : "Other",
+            "key.doclength" : 677,
+            "key.docoffset" : 1854,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+            "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> subscript<\/syntaxtype.keyword><ValueType<\/decl.generic_type_param.name><\/decl.generic_type_param>>(valueType<\/decl.var.parameter.name>: ValueType<\/ref.generic_type_param>.Type<\/decl.var.parameter.type><\/decl.var.parameter>) -> ValueType<\/ref.generic_type_param><\/decl.function.returntype> where<\/syntaxtype.keyword> ValueType : SectionLayoutsValue<\/ref.protocol><\/decl.generic_type_requirement> { get<\/syntaxtype.keyword> set<\/syntaxtype.keyword> }<\/decl.function.subscript>",
+            "key.kind" : "source.lang.swift.decl.function.subscript",
+            "key.length" : 227,
+            "key.name" : "subscript(_:)",
+            "key.namelength" : 70,
+            "key.nameoffset" : 2542,
+            "key.offset" : 2542,
+            "key.parsed_declaration" : "public subscript(_ valueType : ValueType.Type) -> ValueType",
+            "key.parsed_scope.end" : 87,
+            "key.parsed_scope.start" : 84,
+            "key.setter_accessibility" : "source.lang.swift.accessibility.public",
+            "key.substructure" : [
+              {
+                "key.annotated_decl" : "ValueType : SectionLayoutsValue<\/Type><\/Declaration>",
+                "key.elements" : [
+                  {
+                    "key.kind" : "source.lang.swift.structure.elem.typeref",
+                    "key.length" : 19,
+                    "key.offset" : 2562
+                  }
+                ],
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+                "key.fully_annotated_decl" : "ValueType<\/decl.generic_type_param.name> : SectionLayoutsValue<\/ref.protocol><\/decl.generic_type_param.constraint><\/decl.generic_type_param>",
+                "key.inheritedtypes" : [
+                  {
+                    "key.name" : "SectionLayoutsValue"
+                  }
+                ],
+                "key.kind" : "source.lang.swift.decl.generic_type_param",
+                "key.length" : 29,
+                "key.name" : "ValueType",
+                "key.namelength" : 9,
+                "key.nameoffset" : 2552,
+                "key.offset" : 2552,
+                "key.parsed_declaration" : "public subscript (ValueType.Type) -> ValueType",
+            "key.typeusr" : "$syxxmc10ListableUI19SectionLayoutsValueRzluD",
+            "key.usr" : "s:10ListableUI14SectionLayoutsVyxxmcAA0cD5ValueRzluip"
+          }
+        ],
+        "key.typename" : "SectionLayouts.Type",
+        "key.typeusr" : "$s10ListableUI14SectionLayoutsVmD",
+        "key.usr" : "s:10ListableUI14SectionLayoutsV"
+      },
+      {
+        "key.accessibility" : "source.lang.swift.accessibility.public",
+        "key.annotated_decl" : "public protocol SectionLayoutsValue<\/Declaration>",
+        "key.attributes" : [
+          {
+            "key.attribute" : "source.decl.attribute.public",
+            "key.length" : 6,
+            "key.offset" : 3307
+          }
+        ],
+        "key.bodylength" : 118,
+        "key.bodyoffset" : 3344,
+        "key.doc.column" : 17,
+        "key.doc.comment" : "\nThe `SectionLayoutsValue` protocol provides a default value for the different layouts stored\nwithin `SectionLayouts`. Provide a `defaultValue` with reasonable defaults, as the\ndeveloper should not need to set these values at all times when using your layout.\n\n```\npublic struct Layout : Equatable, SectionLayoutsValue\n{\n    public var width : CGFloat\n    public var minHeight : CGFloat\n\n    ...\n\n    public static var defaultValue : Self {\n        ...\n    }\n}\n```",
+        "key.doc.declaration" : "public protocol SectionLayoutsValue",
+        "key.doc.discussion" : [
+          {
+            "CodeListing" : ""
+          }
+        ],
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+        "key.doc.full_as_xml" : "SectionLayoutsValue<\/Name>s:10ListableUI19SectionLayoutsValueP<\/USR>public protocol SectionLayoutsValue<\/Declaration>The SectionLayoutsValue<\/codeVoice> protocol provides a default value for the different layouts stored within SectionLayouts<\/codeVoice>. Provide a defaultValue<\/codeVoice> with reasonable defaults, as the developer should not need to set these values at all times when using your layout.<\/Para><\/Abstract><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Class>",
+        "key.doc.line" : 109,
+        "key.doc.name" : "SectionLayoutsValue",
+        "key.doc.type" : "Class",
+        "key.doclength" : 533,
+        "key.docoffset" : 2774,
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+        "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> protocol<\/syntaxtype.keyword> SectionLayoutsValue<\/decl.name><\/decl.protocol>",
+        "key.kind" : "source.lang.swift.decl.protocol",
+        "key.length" : 149,
+        "key.name" : "SectionLayoutsValue",
+        "key.namelength" : 19,
+        "key.nameoffset" : 3323,
+        "key.offset" : 3314,
+        "key.parsed_declaration" : "public protocol SectionLayoutsValue",
+        "key.parsed_scope.end" : 113,
+        "key.parsed_scope.start" : 109,
+        "key.substructure" : [
+          {
+            "key.accessibility" : "source.lang.swift.accessibility.public",
+            "key.annotated_decl" : "static var defaultValue: Self<\/Type> { get }<\/Declaration>",
+            "key.bodylength" : 5,
+            "key.bodyoffset" : 3455,
+            "key.doc.column" : 16,
+            "key.doc.comment" : "The default value used when accessing the value, if none is set.",
+            "key.doc.declaration" : "static var defaultValue: Self { get }",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+            "key.doc.full_as_xml" : "defaultValue<\/Name>s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ<\/USR>static var defaultValue: Self { get }<\/Declaration>The default value used when accessing the value, if none is set.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.line" : 112,
+            "key.doc.name" : "defaultValue",
+            "key.doc.type" : "Other",
+            "key.doclength" : 69,
+            "key.docoffset" : 3350,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Section\/SectionLayouts.swift",
+            "key.fully_annotated_decl" : "static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> defaultValue<\/decl.name>: Self<\/ref.generic_type_param><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
+            "key.kind" : "source.lang.swift.decl.var.static",
+            "key.length" : 38,
+            "key.name" : "defaultValue",
+            "key.namelength" : 12,
+            "key.nameoffset" : 3434,
+            "key.offset" : 3423,
+            "key.parsed_declaration" : "static var defaultValue : Self",
+            "key.parsed_scope.end" : 112,
+            "key.parsed_scope.start" : 112,
+            "key.typename" : "Self",
+            "key.typeusr" : "$sxD",
+            "key.usr" : "s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ"
+          }
+        ],
+        "key.typename" : "SectionLayoutsValue.Protocol",
+        "key.typeusr" : "$s10ListableUI19SectionLayoutsValue_pmD",
+        "key.usr" : "s:10ListableUI19SectionLayoutsValueP"
+      }
+    ]
+  }
+}, {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
-    "key.length" : 10912,
+    "key.length" : 10913,
     "key.offset" : 0,
     "key.substructure" : [
       {
@@ -71267,8 +73367,8 @@
         "key.doc.column" : 13,
         "key.doc.comment" : "\nControls how a header, footer, or item in a list view is sized.",
         "key.doc.declaration" : "public enum Sizing : Hashable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
-        "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI6SizingO<\/USR>public enum Sizing : Hashable<\/Declaration>Controls how a header, footer, or item in a list view is sized.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
+        "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI6SizingO<\/USR>public enum Sizing : Hashable<\/Declaration>Controls how a header, footer, or item in a list view is sized.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 14,
         "key.doc.name" : "Sizing",
         "key.doc.type" : "Other",
@@ -71281,7 +73381,7 @@
             "key.offset" : 202
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sizing<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>",
         "key.inheritedtypes" : [
           {
@@ -71311,14 +73411,14 @@
                 "key.doc.column" : 10,
                 "key.doc.comment" : "The default size from the list's appearance is used. The size is not dynamic at all.",
                 "key.doc.declaration" : "",
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
-                "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI6SizingO7defaultyA2CmF<\/USR><\/Declaration>The default size from the list’s appearance is used. The size is not dynamic at all.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
+                "key.doc.full_as_xml" : "default<\/Name>s:10ListableUI6SizingO7defaultyA2CmF<\/USR><\/Declaration>The default size from the list’s appearance is used. The size is not dynamic at all.<\/Para><\/Abstract><\/CommentParts><\/Other>",
                 "key.doc.line" : 17,
                 "key.doc.name" : "default",
                 "key.doc.type" : "Other",
                 "key.doclength" : 89,
                 "key.docoffset" : 217,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> `default`<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 9,
@@ -71353,14 +73453,14 @@
                     "Para" : "This option takes in both a size and a width. However, for standard list views, only the height is used. The width is provided for when custom layouts are used, which may allow sizing for other types of layouts, eg, grids."
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
-                "key.doc.full_as_xml" : "fixed(width:height:)<\/Name>s:10ListableUI6SizingO5fixedyAC12CoreGraphics7CGFloatV_AGtcACmF<\/USR><\/Declaration>Fixes the size to the absolute value passed in.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>This option takes in both a size and a width. However, for standard list views, only the height is used. The width is provided for when custom layouts are used, which may allow sizing for other types of layouts, eg, grids.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
+                "key.doc.full_as_xml" : "fixed(width:height:)<\/Name>s:10ListableUI6SizingO5fixedyAC12CoreGraphics7CGFloatV_AGtcACmF<\/USR><\/Declaration>Fixes the size to the absolute value passed in.<\/Para><\/Abstract>]]><\/rawHTML>Note]]><\/rawHTML>This option takes in both a size and a width. However, for standard list views, only the height is used. The width is provided for when custom layouts are used, which may allow sizing for other types of layouts, eg, grids.<\/Para><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 27,
                 "key.doc.name" : "fixed(width:height:)",
                 "key.doc.type" : "Other",
                 "key.doclength" : 341,
                 "key.docoffset" : 334,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 52,
@@ -71401,14 +73501,14 @@
                     "CodeListing" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
-                "key.doc.full_as_xml" : "thatFits(_:)<\/Name>s:10ListableUI6SizingO8thatFitsyA2C10ConstraintVcACmF<\/USR><\/Declaration>Sizes the item by calling sizeThatFits<\/codeVoice> on its underlying view type. The passed in constraint is used to clamp the size to a minimum, maximum, or range. If you do not specify a constraint, .noConstraint<\/codeVoice> is used.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML>If you would like to use sizeThatFits<\/codeVoice> to size an item, but would like to enforce a minimum size, you would do something similar to the following:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
+                "key.doc.full_as_xml" : "thatFits(_:)<\/Name>s:10ListableUI6SizingO8thatFitsyA2C10ConstraintVcACmF<\/USR><\/Declaration>Sizes the item by calling sizeThatFits<\/codeVoice> on its underlying view type. The passed in constraint is used to clamp the size to a minimum, maximum, or range. If you do not specify a constraint, .noConstraint<\/codeVoice> is used.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML>If you would like to use sizeThatFits<\/codeVoice> to size an item, but would like to enforce a minimum size, you would do something similar to the following:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 45,
                 "key.doc.name" : "thatFits(_:)",
                 "key.doc.type" : "Other",
                 "key.doclength" : 705,
                 "key.docoffset" : 746,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> thatFits<\/decl.name>(_<\/decl.var.parameter.argument_label>: Constraint<\/ref.struct><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 36,
@@ -71449,14 +73549,14 @@
                     "CodeListing" : ""
                   }
                 ],
-                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
-                "key.doc.full_as_xml" : "autolayout(_:)<\/Name>s:10ListableUI6SizingO10autolayoutyA2C10ConstraintVcACmF<\/USR><\/Declaration>Sizes the item by calling systemLayoutSizeFitting<\/codeVoice> on its underlying view type. The passed in constraint is used to clamp the size to a minimum, maximum, or range. If you do not specify a constraint, .noConstraint<\/codeVoice> is used.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML>If you would like to use systemLayoutSizeFitting<\/codeVoice> to size an item, but would like to enforce a minimum size, you would do something similar to the following:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
+                "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
+                "key.doc.full_as_xml" : "autolayout(_:)<\/Name>s:10ListableUI6SizingO10autolayoutyA2C10ConstraintVcACmF<\/USR><\/Declaration>Sizes the item by calling systemLayoutSizeFitting<\/codeVoice> on its underlying view type. The passed in constraint is used to clamp the size to a minimum, maximum, or range. If you do not specify a constraint, .noConstraint<\/codeVoice> is used.<\/Para><\/Abstract>]]><\/rawHTML>Example]]><\/rawHTML>If you would like to use systemLayoutSizeFitting<\/codeVoice> to size an item, but would like to enforce a minimum size, you would do something similar to the following:<\/Para><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/zCodeLineNumbered><\/CodeListing><\/Discussion><\/CommentParts><\/Other>",
                 "key.doc.line" : 63,
                 "key.doc.name" : "autolayout(_:)",
                 "key.doc.type" : "Other",
                 "key.doclength" : 731,
                 "key.docoffset" : 1506,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> autolayout<\/decl.name>(_<\/decl.var.parameter.argument_label>: Constraint<\/ref.struct><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 38,
@@ -71484,14 +73584,14 @@
             "key.doc.column" : 10,
             "key.doc.comment" : "Measures the given view with the provided options.\nThe returned value is `ceil()`'d to round up to the next full integer value.",
             "key.doc.declaration" : "func measure(with view: UIView, info: MeasureInfo) -> CGSize",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
-            "key.doc.full_as_xml" : "measure(with:info:)<\/Name>s:10ListableUI6SizingO7measure4with4infoSo6CGSizeVSo6UIViewC_AC11MeasureInfoVtF<\/USR>func measure(with view: UIView, info: MeasureInfo) -> CGSize<\/Declaration>Measures the given view with the provided options. The returned value is ceil()<\/codeVoice>’d to round up to the next full integer value.<\/Para><\/Abstract><\/CommentParts><\/Function>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
+            "key.doc.full_as_xml" : "measure(with:info:)<\/Name>s:10ListableUI6SizingO7measure4with4infoSo6CGSizeVSo6UIViewC_AC11MeasureInfoVtF<\/USR>func measure(with view: UIView, info: MeasureInfo) -> CGSize<\/Declaration>Measures the given view with the provided options. The returned value is ceil()<\/codeVoice>’d to round up to the next full integer value.<\/Para><\/Abstract><\/CommentParts><\/Function>",
             "key.doc.line" : 67,
             "key.doc.name" : "measure(with:info:)",
             "key.doc.type" : "Function",
             "key.doclength" : 140,
             "key.docoffset" : 2294,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "func<\/syntaxtype.keyword> measure<\/decl.name>(with<\/decl.var.parameter.argument_label> view<\/decl.var.parameter.name>: UIView<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, info<\/decl.var.parameter.argument_label>: MeasureInfo<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 1694,
@@ -71505,7 +73605,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let size: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> size<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 1445,
@@ -71537,7 +73637,7 @@
             ],
             "key.bodylength" : 729,
             "key.bodyoffset" : 4194,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "private<\/syntaxtype.keyword> func<\/syntaxtype.keyword> validateMeasuredSize<\/decl.name>(_<\/decl.var.parameter.argument_label> size<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 774,
@@ -71551,7 +73651,7 @@
             "key.substructure" : [
               {
                 "key.annotated_decl" : "let reasonableMaxDimension: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> reasonableMaxDimension<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                 "key.kind" : "source.lang.swift.decl.var.local",
                 "key.length" : 45,
@@ -71582,12 +73682,12 @@
         "key.bodyoffset" : 4947,
         "key.doc.column" : 13,
         "key.doc.declaration" : "public enum Sizing : Hashable",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
-        "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI6SizingO<\/USR>public enum Sizing : Hashable<\/Declaration>Controls how a header, footer, or item in a list view is sized.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
+        "key.doc.full_as_xml" : "Sizing<\/Name>s:10ListableUI6SizingO<\/USR>public enum Sizing : Hashable<\/Declaration>Controls how a header, footer, or item in a list view is sized.<\/Para><\/Abstract><\/CommentParts><\/Other>",
         "key.doc.line" : 14,
         "key.doc.name" : "Sizing",
         "key.doc.type" : "Other",
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sizing<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>",
         "key.kind" : "source.lang.swift.decl.extension",
         "key.length" : 2563,
@@ -71611,7 +73711,7 @@
             ],
             "key.bodylength" : 398,
             "key.bodyoffset" : 4983,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> MeasureInfo<\/decl.name><\/decl.struct>",
             "key.kind" : "source.lang.swift.decl.struct",
             "key.length" : 423,
@@ -71626,7 +73726,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var sizeConstraint: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> sizeConstraint<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 27,
@@ -71645,7 +73745,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var defaultSize: CGSize<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> defaultSize<\/decl.name>: CGSize<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 24,
@@ -71664,7 +73764,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var direction: LayoutDirection<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> direction<\/decl.name>: LayoutDirection<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 31,
@@ -71685,7 +73785,7 @@
                 "key.annotated_decl" : "init(sizeConstraint: CGSize<\/Type>, defaultSize: CGSize<\/Type>, direction: LayoutDirection<\/Type>)<\/Declaration>",
                 "key.bodylength" : 140,
                 "key.bodyoffset" : 5235,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "init<\/syntaxtype.keyword>(sizeConstraint<\/decl.var.parameter.argument_label>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, defaultSize<\/decl.var.parameter.argument_label>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, direction<\/decl.var.parameter.argument_label>: LayoutDirection<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 266,
@@ -71727,7 +73827,7 @@
                 "key.offset" : 5419
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> Constraint<\/decl.name> : Hashable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -71754,7 +73854,7 @@
                     "key.offset" : 5442
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: Axis<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 16,
@@ -71780,7 +73880,7 @@
                     "key.offset" : 5474
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> height<\/decl.name>: Axis<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 17,
@@ -71808,7 +73908,7 @@
                 ],
                 "key.bodylength" : 123,
                 "key.bodyoffset" : 5561,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> noConstraint<\/decl.name>: Constraint<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
                 "key.kind" : "source.lang.swift.decl.var.static",
                 "key.length" : 162,
@@ -71835,7 +73935,7 @@
                 ],
                 "key.bodylength" : 72,
                 "key.bodyoffset" : 5740,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: Axis<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 103,
@@ -71870,7 +73970,7 @@
                 ],
                 "key.bodylength" : 73,
                 "key.bodyoffset" : 5907,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(width<\/decl.var.parameter.argument_label>: Axis<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, height<\/decl.var.parameter.argument_label>: Axis<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 143,
@@ -71905,7 +74005,7 @@
                 ],
                 "key.bodylength" : 211,
                 "key.bodyoffset" : 6081,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> clamp<\/decl.name>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> defaultSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGSize<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 287,
@@ -71942,7 +74042,7 @@
                     "key.offset" : 6330
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sizing<\/ref.enum>.Constraint<\/ref.struct>.Axis<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>",
                 "key.inheritedtypes" : [
                   {
@@ -71969,7 +74069,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.public",
                         "key.annotated_decl" : "case noConstraint<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> noConstraint<\/decl.name><\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 12,
@@ -71996,7 +74096,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.public",
                         "key.annotated_decl" : "case atLeast(Value<\/Type>)<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> atLeast<\/decl.name>(Value<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 14,
@@ -72026,7 +74126,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.public",
                         "key.annotated_decl" : "case atMost(CGFloat<\/Type>)<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> atMost<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 15,
@@ -72056,7 +74156,7 @@
                       {
                         "key.accessibility" : "source.lang.swift.accessibility.public",
                         "key.annotated_decl" : "case within(Value<\/Type>, CGFloat<\/Type>)<\/Declaration>",
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                         "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> within<\/decl.name>(Value<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>, CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                         "key.kind" : "source.lang.swift.decl.enumelement",
                         "key.length" : 22,
@@ -72095,7 +74195,7 @@
                         "key.offset" : 6555
                       }
                     ],
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                     "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> Sizing<\/ref.enum>.Constraint<\/ref.struct>.Axis<\/ref.enum>.Value<\/decl.name> : Hashable<\/ref.protocol><\/decl.enum>",
                     "key.inheritedtypes" : [
                       {
@@ -72122,7 +74222,7 @@
                           {
                             "key.accessibility" : "source.lang.swift.accessibility.public",
                             "key.annotated_decl" : "case `default`<\/Declaration>",
-                            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                             "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> `default`<\/decl.name><\/decl.enumelement>",
                             "key.kind" : "source.lang.swift.decl.enumelement",
                             "key.length" : 9,
@@ -72149,7 +74249,7 @@
                           {
                             "key.accessibility" : "source.lang.swift.accessibility.public",
                             "key.annotated_decl" : "case fixed(CGFloat<\/Type>)<\/Declaration>",
-                            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                             "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                             "key.kind" : "source.lang.swift.decl.enumelement",
                             "key.length" : 14,
@@ -72181,7 +74281,7 @@
                         ],
                         "key.bodylength" : 188,
                         "key.bodyoffset" : 6754,
-                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> value<\/decl.name>(with<\/decl.var.parameter.argument_label> defaultHeight<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                         "key.kind" : "source.lang.swift.decl.function.method.instance",
                         "key.length" : 258,
@@ -72216,7 +74316,7 @@
                     ],
                     "key.bodylength" : 400,
                     "key.bodyoffset" : 7073,
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                     "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> clamp<\/decl.name>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, with<\/decl.var.parameter.argument_label> defaultValue<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                     "key.kind" : "source.lang.swift.decl.function.method.instance",
                     "key.length" : 484,
@@ -72268,7 +74368,7 @@
             "key.offset" : 7525
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> WidthConstraint<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
         "key.inheritedtypes" : [
           {
@@ -72295,7 +74395,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case noConstraint<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> noConstraint<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 12,
@@ -72322,7 +74422,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case fixed(CGFloat<\/Type>)<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fixed<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 14,
@@ -72352,7 +74452,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case atMost(CGFloat<\/Type>)<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> atMost<\/decl.name>(CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 15,
@@ -72384,7 +74484,7 @@
             ],
             "key.bodylength" : 185,
             "key.bodyoffset" : 7670,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> clamp<\/decl.name>(_<\/decl.var.parameter.argument_label> value<\/decl.var.parameter.name>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 232,
@@ -72417,7 +74517,7 @@
             "key.offset" : 7861
           }
         ],
-        "key.bodylength" : 2540,
+        "key.bodylength" : 2541,
         "key.bodyoffset" : 7898,
         "key.elements" : [
           {
@@ -72426,7 +74526,7 @@
             "key.offset" : 7887
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> CustomWidth<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
         "key.inheritedtypes" : [
           {
@@ -72434,7 +74534,7 @@
           }
         ],
         "key.kind" : "source.lang.swift.decl.enum",
-        "key.length" : 2571,
+        "key.length" : 2572,
         "key.name" : "CustomWidth",
         "key.namelength" : 11,
         "key.nameoffset" : 7873,
@@ -72453,7 +74553,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case `default`<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> `default`<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 9,
@@ -72480,7 +74580,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case fill<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> fill<\/decl.name><\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 4,
@@ -72507,7 +74607,7 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.public",
                 "key.annotated_decl" : "case custom(Custom<\/Type>)<\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> custom<\/decl.name>(Custom<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.enumelement>",
                 "key.kind" : "source.lang.swift.decl.enumelement",
                 "key.length" : 14,
@@ -72539,7 +74639,7 @@
             ],
             "key.bodylength" : 143,
             "key.bodyoffset" : 8030,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> merge<\/decl.name>(with<\/decl.var.parameter.argument_label> parent<\/decl.var.parameter.name>: CustomWidth<\/ref.enum><\/decl.var.parameter.type><\/decl.var.parameter>) -> CustomWidth<\/ref.enum><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 202,
@@ -72569,7 +74669,7 @@
             ],
             "key.bodylength" : 480,
             "key.bodyoffset" : 8270,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> position<\/decl.name>(with<\/decl.var.parameter.argument_label> viewSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, defaultWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Position<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 560,
@@ -72597,7 +74697,7 @@
                 "key.offset" : 8761
               }
             ],
-            "key.bodylength" : 1004,
+            "key.bodylength" : 1005,
             "key.bodyoffset" : 8799,
             "key.elements" : [
               {
@@ -72606,7 +74706,7 @@
                 "key.offset" : 8784
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> CustomWidth<\/ref.enum>.Custom<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -72614,7 +74714,7 @@
               }
             ],
             "key.kind" : "source.lang.swift.decl.struct",
-            "key.length" : 1036,
+            "key.length" : 1037,
             "key.name" : "Custom",
             "key.namelength" : 6,
             "key.nameoffset" : 8775,
@@ -72633,7 +74733,7 @@
                     "key.offset" : 8808
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> padding<\/decl.name>: HorizontalPadding<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 31,
@@ -72659,7 +74759,7 @@
                     "key.offset" : 8855
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> width<\/decl.name>: WidthConstraint<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 27,
@@ -72685,7 +74785,7 @@
                     "key.offset" : 8898
                   }
                 ],
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> alignment<\/decl.name>: Alignment<\/ref.enum><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 25,
@@ -72713,7 +74813,7 @@
                 ],
                 "key.bodylength" : 114,
                 "key.bodyoffset" : 9126,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(padding<\/decl.var.parameter.argument_label>: HorizontalPadding<\/ref.struct><\/decl.var.parameter.type> = .zero<\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: WidthConstraint<\/ref.enum><\/decl.var.parameter.type> = .noConstraint<\/decl.var.parameter>, alignment<\/decl.var.parameter.argument_label>: Alignment<\/ref.enum><\/decl.var.parameter.type> = .center<\/decl.var.parameter>)<\/decl.function.constructor>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 286,
@@ -72741,12 +74841,12 @@
                     "key.offset" : 9259
                   }
                 ],
-                "key.bodylength" : 472,
+                "key.bodylength" : 473,
                 "key.bodyoffset" : 9325,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> position<\/decl.name>(with<\/decl.var.parameter.argument_label> viewSize<\/decl.var.parameter.name>: CGSize<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Position<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
-                "key.length" : 532,
+                "key.length" : 533,
                 "key.name" : "position(with:)",
                 "key.namelength" : 32,
                 "key.nameoffset" : 9271,
@@ -72757,15 +74857,15 @@
                 "key.substructure" : [
                   {
                     "key.annotated_decl" : "let width: CGFloat<\/Type><\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                     "key.fully_annotated_decl" : "let<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.local>",
                     "key.kind" : "source.lang.swift.decl.var.local",
-                    "key.length" : 170,
+                    "key.length" : 171,
                     "key.name" : "width",
                     "key.namelength" : 5,
                     "key.nameoffset" : 9342,
                     "key.offset" : 9338,
-                    "key.parsed_declaration" : "let width = ListAppearance.Layout.width(\n    with: viewSize.width,\n    padding: self.padding,\n    constraint: self.width\n)",
+                    "key.parsed_declaration" : "let width = TableAppearance.Layout.width(\n    with: viewSize.width,\n    padding: self.padding,\n    constraint: self.width\n)",
                     "key.parsed_scope.end" : 295,
                     "key.parsed_scope.start" : 295,
                     "key.related_decls" : [
@@ -72794,19 +74894,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 9814
+                "key.offset" : 9815
               }
             ],
             "key.bodylength" : 470,
-            "key.bodyoffset" : 9853,
+            "key.bodyoffset" : 9854,
             "key.elements" : [
               {
                 "key.kind" : "source.lang.swift.structure.elem.typeref",
                 "key.length" : 9,
-                "key.offset" : 9838
+                "key.offset" : 9839
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> enum<\/syntaxtype.keyword> CustomWidth<\/ref.enum>.Alignment<\/decl.name> : Equatable<\/ref.protocol><\/decl.enum>",
             "key.inheritedtypes" : [
               {
@@ -72817,8 +74917,8 @@
             "key.length" : 503,
             "key.name" : "Alignment",
             "key.namelength" : 9,
-            "key.nameoffset" : 9826,
-            "key.offset" : 9821,
+            "key.nameoffset" : 9827,
+            "key.offset" : 9822,
             "key.parsed_declaration" : "public enum Alignment : Equatable",
             "key.parsed_scope.end" : 329,
             "key.parsed_scope.start" : 312,
@@ -72828,19 +74928,19 @@
                 "key.length" : 9,
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 9862,
+                "key.offset" : 9863,
                 "key.substructure" : [
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case left<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> left<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 4,
                     "key.name" : "left",
                     "key.namelength" : 4,
-                    "key.nameoffset" : 9867,
-                    "key.offset" : 9867,
+                    "key.nameoffset" : 9868,
+                    "key.offset" : 9868,
                     "key.parsed_declaration" : "case left",
                     "key.parsed_scope.end" : 314,
                     "key.parsed_scope.start" : 314,
@@ -72855,19 +74955,19 @@
                 "key.length" : 11,
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 9880,
+                "key.offset" : 9881,
                 "key.substructure" : [
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case center<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> center<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 6,
                     "key.name" : "center",
                     "key.namelength" : 6,
-                    "key.nameoffset" : 9885,
-                    "key.offset" : 9885,
+                    "key.nameoffset" : 9886,
+                    "key.offset" : 9886,
                     "key.parsed_declaration" : "case center",
                     "key.parsed_scope.end" : 315,
                     "key.parsed_scope.start" : 315,
@@ -72882,19 +74982,19 @@
                 "key.length" : 10,
                 "key.namelength" : 0,
                 "key.nameoffset" : 0,
-                "key.offset" : 9900,
+                "key.offset" : 9901,
                 "key.substructure" : [
                   {
                     "key.accessibility" : "source.lang.swift.accessibility.public",
                     "key.annotated_decl" : "case right<\/Declaration>",
-                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                    "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                     "key.fully_annotated_decl" : "case<\/syntaxtype.keyword> right<\/decl.name><\/decl.enumelement>",
                     "key.kind" : "source.lang.swift.decl.enumelement",
                     "key.length" : 5,
                     "key.name" : "right",
                     "key.namelength" : 5,
-                    "key.nameoffset" : 9905,
-                    "key.offset" : 9905,
+                    "key.nameoffset" : 9906,
+                    "key.offset" : 9906,
                     "key.parsed_declaration" : "case right",
                     "key.parsed_scope.end" : 316,
                     "key.parsed_scope.start" : 316,
@@ -72911,19 +75011,19 @@
                   {
                     "key.attribute" : "source.decl.attribute.public",
                     "key.length" : 6,
-                    "key.offset" : 9928
+                    "key.offset" : 9929
                   }
                 ],
                 "key.bodylength" : 277,
-                "key.bodyoffset" : 10040,
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.bodyoffset" : 10041,
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> func<\/syntaxtype.keyword> originWith<\/decl.name>(parentWidth<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, width<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, padding<\/decl.var.parameter.argument_label>: HorizontalPadding<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> CGFloat<\/ref.struct><\/decl.function.returntype><\/decl.function.method.instance>",
                 "key.kind" : "source.lang.swift.decl.function.method.instance",
                 "key.length" : 383,
                 "key.name" : "originWith(parentWidth:width:padding:)",
                 "key.namelength" : 79,
-                "key.nameoffset" : 9940,
-                "key.offset" : 9935,
+                "key.nameoffset" : 9941,
+                "key.offset" : 9936,
                 "key.parsed_declaration" : "public func originWith(parentWidth : CGFloat, width : CGFloat, padding : HorizontalPadding) -> CGFloat",
                 "key.parsed_scope.end" : 328,
                 "key.parsed_scope.start" : 318,
@@ -72946,19 +75046,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 10334
+                "key.offset" : 10335
               }
             ],
             "key.bodylength" : 62,
-            "key.bodyoffset" : 10374,
+            "key.bodyoffset" : 10375,
             "key.elements" : [
               {
                 "key.kind" : "source.lang.swift.structure.elem.typeref",
                 "key.length" : 9,
-                "key.offset" : 10359
+                "key.offset" : 10360
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> CustomWidth<\/ref.enum>.Position<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
             "key.inheritedtypes" : [
               {
@@ -72969,8 +75069,8 @@
             "key.length" : 96,
             "key.name" : "Position",
             "key.namelength" : 8,
-            "key.nameoffset" : 10348,
-            "key.offset" : 10341,
+            "key.nameoffset" : 10349,
+            "key.offset" : 10342,
             "key.parsed_declaration" : "public struct Position : Equatable",
             "key.parsed_scope.end" : 335,
             "key.parsed_scope.start" : 331,
@@ -72978,14 +75078,14 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var origin: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> origin<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 20,
                 "key.name" : "origin",
                 "key.namelength" : 6,
-                "key.nameoffset" : 10387,
-                "key.offset" : 10383,
+                "key.nameoffset" : 10388,
+                "key.offset" : 10384,
                 "key.parsed_declaration" : "var origin : CGFloat",
                 "key.parsed_scope.end" : 333,
                 "key.parsed_scope.start" : 333,
@@ -72997,14 +75097,14 @@
               {
                 "key.accessibility" : "source.lang.swift.accessibility.internal",
                 "key.annotated_decl" : "var width: CGFloat<\/Type><\/Declaration>",
-                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+                "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
                 "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> width<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
                 "key.kind" : "source.lang.swift.decl.var.instance",
                 "key.length" : 19,
                 "key.name" : "width",
                 "key.namelength" : 5,
-                "key.nameoffset" : 10416,
-                "key.offset" : 10412,
+                "key.nameoffset" : 10417,
+                "key.offset" : 10413,
                 "key.parsed_declaration" : "var width : CGFloat",
                 "key.parsed_scope.end" : 334,
                 "key.parsed_scope.start" : 334,
@@ -73030,19 +75130,19 @@
           {
             "key.attribute" : "source.decl.attribute.public",
             "key.length" : 6,
-            "key.offset" : 10442
+            "key.offset" : 10443
           }
         ],
         "key.bodylength" : 423,
-        "key.bodyoffset" : 10487,
+        "key.bodyoffset" : 10488,
         "key.elements" : [
           {
             "key.kind" : "source.lang.swift.structure.elem.typeref",
             "key.length" : 9,
-            "key.offset" : 10476
+            "key.offset" : 10477
           }
         ],
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> HorizontalPadding<\/decl.name> : Equatable<\/ref.protocol><\/decl.struct>",
         "key.inheritedtypes" : [
           {
@@ -73053,8 +75153,8 @@
         "key.length" : 462,
         "key.name" : "HorizontalPadding",
         "key.namelength" : 17,
-        "key.nameoffset" : 10456,
-        "key.offset" : 10449,
+        "key.nameoffset" : 10457,
+        "key.offset" : 10450,
         "key.parsed_declaration" : "public struct HorizontalPadding : Equatable",
         "key.parsed_scope.end" : 359,
         "key.parsed_scope.start" : 339,
@@ -73066,17 +75166,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 10492
+                "key.offset" : 10493
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> left<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 18,
             "key.name" : "left",
             "key.namelength" : 4,
-            "key.nameoffset" : 10503,
-            "key.offset" : 10499,
+            "key.nameoffset" : 10504,
+            "key.offset" : 10500,
             "key.parsed_declaration" : "public var left : CGFloat",
             "key.parsed_scope.end" : 341,
             "key.parsed_scope.start" : 341,
@@ -73092,17 +75192,17 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 10522
+                "key.offset" : 10523
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> right<\/decl.name>: CGFloat<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
             "key.name" : "right",
             "key.namelength" : 5,
-            "key.nameoffset" : 10533,
-            "key.offset" : 10529,
+            "key.nameoffset" : 10534,
+            "key.offset" : 10530,
             "key.parsed_declaration" : "public var right : CGFloat",
             "key.parsed_scope.end" : 342,
             "key.parsed_scope.start" : 342,
@@ -73118,19 +75218,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 10558
+                "key.offset" : 10559
               }
             ],
             "key.bodylength" : 61,
-            "key.bodyoffset" : 10602,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.bodyoffset" : 10603,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> static<\/syntaxtype.keyword> var<\/syntaxtype.keyword> zero<\/decl.name>: HorizontalPadding<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.static>",
             "key.kind" : "source.lang.swift.decl.var.static",
             "key.length" : 99,
             "key.name" : "zero",
             "key.namelength" : 4,
-            "key.nameoffset" : 10576,
-            "key.offset" : 10565,
+            "key.nameoffset" : 10577,
+            "key.offset" : 10566,
             "key.parsed_declaration" : "public static var zero : HorizontalPadding",
             "key.parsed_scope.end" : 346,
             "key.parsed_scope.start" : 344,
@@ -73145,19 +75245,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 10674
+                "key.offset" : 10675
               }
             ],
             "key.bodylength" : 57,
-            "key.bodyoffset" : 10736,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.bodyoffset" : 10737,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(left<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>, right<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 113,
             "key.name" : "init(left:right:)",
             "key.namelength" : 49,
-            "key.nameoffset" : 10681,
-            "key.offset" : 10681,
+            "key.nameoffset" : 10682,
+            "key.offset" : 10682,
             "key.parsed_declaration" : "public init(left : CGFloat = 0.0, right : CGFloat = 0.0)",
             "key.parsed_scope.end" : 352,
             "key.parsed_scope.start" : 348,
@@ -73180,19 +75280,19 @@
               {
                 "key.attribute" : "source.decl.attribute.public",
                 "key.length" : 6,
-                "key.offset" : 10804
+                "key.offset" : 10805
               }
             ],
             "key.bodylength" : 62,
-            "key.bodyoffset" : 10846,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/Sizing.swift",
+            "key.bodyoffset" : 10847,
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/Sizing.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(uniform<\/decl.var.parameter.argument_label>: CGFloat<\/ref.struct><\/decl.var.parameter.type> = 0.0<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 98,
             "key.name" : "init(uniform:)",
             "key.namelength" : 29,
-            "key.nameoffset" : 10811,
-            "key.offset" : 10811,
+            "key.nameoffset" : 10812,
+            "key.offset" : 10812,
             "key.parsed_declaration" : "public init(uniform : CGFloat = 0.0)",
             "key.parsed_scope.end" : 358,
             "key.parsed_scope.start" : 354,
@@ -73216,7 +75316,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 1879,
     "key.offset" : 0,
@@ -73236,14 +75336,14 @@
         "key.doc.column" : 15,
         "key.doc.comment" : "Use SwipeActionsConfiguration to configure an item with SwipeActions.\nThese are actions that are revealed when swiping on the cell.",
         "key.doc.declaration" : "public struct SwipeActionsConfiguration",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
-        "key.doc.full_as_xml" : "SwipeActionsConfiguration<\/Name>s:10ListableUI25SwipeActionsConfigurationV<\/USR>public struct SwipeActionsConfiguration<\/Declaration>Use SwipeActionsConfiguration to configure an item with SwipeActions. These are actions that are revealed when swiping on the cell.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+        "key.doc.full_as_xml" : "SwipeActionsConfiguration<\/Name>s:10ListableUI25SwipeActionsConfigurationV<\/USR>public struct SwipeActionsConfiguration<\/Declaration>Use SwipeActionsConfiguration to configure an item with SwipeActions. These are actions that are revealed when swiping on the cell.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 13,
         "key.doc.name" : "SwipeActionsConfiguration",
         "key.doc.type" : "Class",
         "key.doclength" : 140,
         "key.docoffset" : 110,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SwipeActionsConfiguration<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 687,
@@ -73268,14 +75368,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "The actions to display when the cell is swiped.",
             "key.doc.declaration" : "public var actions: [SwipeAction]",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
-            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI25SwipeActionsConfigurationV7actionsSayAA0C6ActionVGvp<\/USR>public var actions: [SwipeAction]<\/Declaration>The actions to display when the cell is swiped.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.doc.full_as_xml" : "actions<\/Name>s:10ListableUI25SwipeActionsConfigurationV7actionsSayAA0C6ActionVGvp<\/USR>public var actions: [SwipeAction]<\/Declaration>The actions to display when the cell is swiped.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 16,
             "key.doc.name" : "actions",
             "key.doc.type" : "Other",
             "key.doclength" : 52,
             "key.docoffset" : 297,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> actions<\/decl.name>: [SwipeAction<\/ref.struct>]<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 27,
@@ -73304,14 +75404,14 @@
             "key.doc.column" : 16,
             "key.doc.comment" : "Whether the first action is performed automatically with a full swipe.",
             "key.doc.declaration" : "public var performsFirstActionWithFullSwipe: Bool",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
-            "key.doc.full_as_xml" : "performsFirstActionWithFullSwipe<\/Name>s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC0Sbvp<\/USR>public var performsFirstActionWithFullSwipe: Bool<\/Declaration>Whether the first action is performed automatically with a full swipe.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.doc.full_as_xml" : "performsFirstActionWithFullSwipe<\/Name>s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC0Sbvp<\/USR>public var performsFirstActionWithFullSwipe: Bool<\/Declaration>Whether the first action is performed automatically with a full swipe.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 19,
             "key.doc.name" : "performsFirstActionWithFullSwipe",
             "key.doc.type" : "Other",
             "key.doclength" : 75,
             "key.docoffset" : 393,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> performsFirstActionWithFullSwipe<\/decl.name>: Bool<\/ref.struct><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 43,
@@ -73339,7 +75439,7 @@
             ],
             "key.bodylength" : 110,
             "key.bodyoffset" : 616,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(action<\/decl.var.parameter.argument_label>: SwipeAction<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, performsFirstActionWithFullSwipe<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 188,
@@ -73374,7 +75474,7 @@
             ],
             "key.bodylength" : 117,
             "key.bodyoffset" : 824,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(actions<\/decl.var.parameter.argument_label>: [SwipeAction<\/ref.struct>]<\/decl.var.parameter.type><\/decl.var.parameter>, performsFirstActionWithFullSwipe<\/decl.var.parameter.argument_label>: Bool<\/ref.struct><\/decl.var.parameter.type> = false<\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 198,
@@ -73417,14 +75517,14 @@
         "key.doc.column" : 15,
         "key.doc.comment" : "Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.",
         "key.doc.declaration" : "public struct SwipeAction",
-        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
-        "key.doc.full_as_xml" : "SwipeAction<\/Name>s:10ListableUI11SwipeActionV<\/USR>public struct SwipeAction<\/Declaration>Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.<\/Para><\/Abstract><\/CommentParts><\/Class>",
+        "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+        "key.doc.full_as_xml" : "SwipeAction<\/Name>s:10ListableUI11SwipeActionV<\/USR>public struct SwipeAction<\/Declaration>Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.<\/Para><\/Abstract><\/CommentParts><\/Class>",
         "key.doc.line" : 33,
         "key.doc.name" : "SwipeAction",
         "key.doc.type" : "Class",
         "key.doclength" : 96,
         "key.docoffset" : 947,
-        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+        "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
         "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> struct<\/syntaxtype.keyword> SwipeAction<\/decl.name><\/decl.struct>",
         "key.kind" : "source.lang.swift.decl.struct",
         "key.length" : 828,
@@ -73454,14 +75554,14 @@
                 "Para" : "Pass in `true` to expand the actions (typically only used when deleting the row) or `false` to collapse them."
               }
             ],
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
-            "key.doc.full_as_xml" : "CompletionHandler<\/Name>s:10ListableUI11SwipeActionV17CompletionHandlera<\/USR>public typealias ListableUI.SwipeAction.CompletionHandler = (_ expandActions: Bool) -> Void<\/Declaration>The completion handler to call after performing the swipe action.<\/Para><\/Abstract>Pass in true<\/codeVoice> to expand the actions (typically only used when deleting the row) or false<\/codeVoice> to collapse them.<\/Para><\/Discussion><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.doc.full_as_xml" : "CompletionHandler<\/Name>s:10ListableUI11SwipeActionV17CompletionHandlera<\/USR>public typealias ListableUI.SwipeAction.CompletionHandler = (_ expandActions: Bool) -> Void<\/Declaration>The completion handler to call after performing the swipe action.<\/Para><\/Abstract>Pass in true<\/codeVoice> to expand the actions (typically only used when deleting the row) or false<\/codeVoice> to collapse them.<\/Para><\/Discussion><\/CommentParts><\/Other>",
             "key.doc.line" : 39,
             "key.doc.name" : "CompletionHandler",
             "key.doc.type" : "Other",
             "key.doclength" : 204,
             "key.docoffset" : 1076,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> SwipeAction<\/ref.struct>.CompletionHandler<\/decl.name> = (_<\/decl.var.parameter.argument_label> expandActions<\/decl.var.parameter.name>: Bool<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>) -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 61,
@@ -73489,14 +75589,14 @@
             "key.doc.column" : 22,
             "key.doc.comment" : "The completion handler called when the action is tapped.",
             "key.doc.declaration" : "public typealias ListableUI.SwipeAction.Handler = (@escaping CompletionHandler) -> Void",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
-            "key.doc.full_as_xml" : "Handler<\/Name>s:10ListableUI11SwipeActionV7Handlera<\/USR>public typealias ListableUI.SwipeAction.Handler = (@escaping CompletionHandler) -> Void<\/Declaration>The completion handler called when the action is tapped.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.doc.full_as_xml" : "Handler<\/Name>s:10ListableUI11SwipeActionV7Handlera<\/USR>public typealias ListableUI.SwipeAction.Handler = (@escaping CompletionHandler) -> Void<\/Declaration>The completion handler called when the action is tapped.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 42,
             "key.doc.name" : "Handler",
             "key.doc.type" : "Other",
             "key.doclength" : 61,
             "key.docoffset" : 1358,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> typealias<\/syntaxtype.keyword> SwipeAction<\/ref.struct>.Handler<\/decl.name> = (@escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> CompletionHandler<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>) -> Void<\/ref.typealias><\/decl.function.returntype><\/decl.typealias>",
             "key.kind" : "source.lang.swift.decl.typealias",
             "key.length" : 57,
@@ -73521,7 +75621,7 @@
                 "key.offset" : 1493
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> title<\/decl.name>: String<\/ref.struct>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 18,
@@ -73547,7 +75647,7 @@
                 "key.offset" : 1523
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> backgroundColor<\/decl.name>: UIColor<\/ref.class>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 29,
@@ -73573,7 +75673,7 @@
                 "key.offset" : 1564
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> image<\/decl.name>: UIImage<\/ref.class>?<\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 19,
@@ -73599,7 +75699,7 @@
                 "key.offset" : 1596
               }
             ],
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> var<\/syntaxtype.keyword> handler<\/decl.name>: Handler<\/ref.typealias><\/decl.var.type><\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 20,
@@ -73627,7 +75727,7 @@
             ],
             "key.bodylength" : 137,
             "key.bodyoffset" : 1738,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/SwipeActionsConfiguration.swift",
             "key.fully_annotated_decl" : "public<\/syntaxtype.keyword> init<\/syntaxtype.keyword>(title<\/decl.var.parameter.argument_label>: String<\/ref.struct><\/decl.var.parameter.type><\/decl.var.parameter>, backgroundColor<\/decl.var.parameter.argument_label>: UIColor<\/ref.class><\/decl.var.parameter.type><\/decl.var.parameter>, image<\/decl.var.parameter.argument_label>: UIImage<\/ref.class>?<\/decl.var.parameter.type> = nil<\/decl.var.parameter>, handler<\/decl.var.parameter.argument_label>: @escaping<\/syntaxtype.attribute.name><\/syntaxtype.attribute.builtin> Handler<\/ref.typealias><\/decl.var.parameter.type><\/decl.var.parameter>)<\/decl.function.constructor>",
             "key.kind" : "source.lang.swift.decl.function.method.instance",
             "key.length" : 236,
@@ -73653,7 +75753,7 @@
     ]
   }
 }, {
-  "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/UIScrollView+Extensions.swift" : {
+  "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/UIScrollView+Extensions.swift" : {
     "key.diagnostic_stage" : "source.diagnostic.stage.swift.parse",
     "key.length" : 368,
     "key.offset" : 0,
@@ -73683,14 +75783,14 @@
             "key.doc.column" : 9,
             "key.doc.comment" : "The frame of the collection view inset by the adjusted content inset,\ni.e., the visible frame of the content.",
             "key.doc.declaration" : "var contentFrame: CGRect { get }",
-            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/UIScrollView+Extensions.swift",
-            "key.doc.full_as_xml" : "contentFrame<\/Name>s:So12UIScrollViewC10ListableUIE12contentFrameSo6CGRectVvp<\/USR>var contentFrame: CGRect { get }<\/Declaration>The frame of the collection view inset by the adjusted content inset, i.e., the visible frame of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
+            "key.doc.file" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/UIScrollView+Extensions.swift",
+            "key.doc.full_as_xml" : "contentFrame<\/Name>s:So12UIScrollViewC10ListableUIE12contentFrameSo6CGRectVvp<\/USR>var contentFrame: CGRect { get }<\/Declaration>The frame of the collection view inset by the adjusted content inset, i.e., the visible frame of the content.<\/Para><\/Abstract><\/CommentParts><\/Other>",
             "key.doc.line" : 14,
             "key.doc.name" : "contentFrame",
             "key.doc.type" : "Other",
             "key.doclength" : 122,
             "key.docoffset" : 143,
-            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable3\/ListableUI\/Sources\/UIScrollView+Extensions.swift",
+            "key.filepath" : "\/Users\/k\/Desktop\/Development\/Listable2\/ListableUI\/Sources\/UIScrollView+Extensions.swift",
             "key.fully_annotated_decl" : "var<\/syntaxtype.keyword> contentFrame<\/decl.name>: CGRect<\/ref.struct><\/decl.var.type> { get<\/syntaxtype.keyword> }<\/decl.var.instance>",
             "key.kind" : "source.lang.swift.decl.var.instance",
             "key.length" : 96,
diff --git a/docs/Listable/Classes.html b/docs/Listable/Classes.html
index 3ec1de95c..d9c826a4d 100644
--- a/docs/Listable/Classes.html
+++ b/docs/Listable/Classes.html
@@ -23,7 +23,7 @@
         
           Listable
         
-         (44% documented)
+         (45% documented)
       

@@ -256,6 +256,9 @@

+ @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + +
  • + +
    +
    +
    +
    +
    +

    The HeaderFooterLayoutsValue protocol provides a default value for the different layouts stored +within HeaderFooterLayouts. Provide a defaultValue with reasonable defaults, as the +developer should not need to set these values at all times when using your layout.

    +
    public struct Layout : Equatable, HeaderFooterLayoutsValue
    +{
    +    public var width : CGFloat
    +    public var minHeight : CGFloat
    +
    +    ...
    +
    +    public static var defaultValue : Self {
    +        ...
    +    }
    +}
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol HeaderFooterLayoutsValue
    + +
    +
    +
    +
    +
  • @@ -876,6 +942,48 @@

    Declaration

  • +
  • +
    + + + + ItemLayoutsValue + +
    +
    +
    +
    +
    +
    +

    The ItemLayoutsValue protocol provides a default value for the different layouts stored +within ItemLayouts. Provide a defaultValue with reasonable defaults, as the +developer should not need to set these values at all times when using your layout.

    +
    public struct Layout : Equatable, ItemLayoutsValue
    +{
    +    public var width : CGFloat
    +    public var minHeight : CGFloat
    +
    +    ...
    +
    +    public static var defaultValue : Self {
    +        ...
    +    }
    +}
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol ItemLayoutsValue
    + +
    +
    +
    +
    +
  • @@ -1217,6 +1325,48 @@

    Declaration

    +
  • +
    + + + + SectionLayoutsValue + +
    +
    +
    +
    +
    +
    +

    The SectionLayoutsValue protocol provides a default value for the different layouts stored +within SectionLayouts. Provide a defaultValue with reasonable defaults, as the +developer should not need to set these values at all times when using your layout.

    +
    public struct Layout : Equatable, SectionLayoutsValue
    +{
    +    public var width : CGFloat
    +    public var minHeight : CGFloat
    +
    +    ...
    +
    +    public static var defaultValue : Self {
    +        ...
    +    }
    +}
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol SectionLayoutsValue
    + +
    +
    +
    +
    +
  • @@ -1225,7 +1375,7 @@

    Declaration

    diff --git a/docs/Listable/Protocols/AnyHeaderFooter.html b/docs/Listable/Protocols/AnyHeaderFooter.html index aedda60bc..9b5618da7 100644 --- a/docs/Listable/Protocols/AnyHeaderFooter.html +++ b/docs/Listable/Protocols/AnyHeaderFooter.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

    + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -605,7 +629,7 @@

    Declaration

    Declaration

    Swift

    -
    var layout: HeaderFooterLayout { get set }
    +
    var layouts: HeaderFooterLayouts { get set }
    @@ -620,7 +644,7 @@

    Declaration

    diff --git a/docs/Listable/Protocols/AnyHeaderFooter_Internal.html b/docs/Listable/Protocols/AnyHeaderFooter_Internal.html index 3a3e2c116..3866ba60a 100644 --- a/docs/Listable/Protocols/AnyHeaderFooter_Internal.html +++ b/docs/Listable/Protocols/AnyHeaderFooter_Internal.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -578,7 +602,7 @@

    AnyHeaderFooter_Internal

    Declaration

    Swift

    -
    var layout: HeaderFooterLayout { get }
    +
    var layouts: HeaderFooterLayouts { get }
    @@ -678,7 +702,7 @@

    Declaration

    diff --git a/docs/Listable/Protocols/AnyItem.html b/docs/Listable/Protocols/AnyItem.html index 6df77714d..792c6355b 100644 --- a/docs/Listable/Protocols/AnyItem.html +++ b/docs/Listable/Protocols/AnyItem.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -659,7 +683,7 @@

    Declaration

    Declaration

    Swift

    -
    var layout: ItemLayout { get set }
    +
    var layouts: ItemLayouts { get }
    @@ -782,7 +806,7 @@

    Declaration

    diff --git a/docs/Listable/Protocols/AnyItem_Internal.html b/docs/Listable/Protocols/AnyItem_Internal.html index 82957cd86..368ea613d 100644 --- a/docs/Listable/Protocols/AnyItem_Internal.html +++ b/docs/Listable/Protocols/AnyItem_Internal.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - itemSpacing - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var itemSpacing: CGFloat?
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var itemToSectionFooterSpacing: CGFloat?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - width - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var width: CustomWidth
    - -
    -
    -
    -
    -
  • -
  • -
    @@ -652,18 +609,14 @@

    Declaration

    -

    Undocumented

    +

    The default value used when accessing the value, if none is set.

    Declaration

    Swift

    -
    public init(
    -    itemSpacing : CGFloat? = nil,
    -    itemToSectionFooterSpacing : CGFloat? = nil,
    -    width : CustomWidth = .default
    -)
    +
    static var defaultValue: Self { get }
    @@ -678,7 +631,7 @@

    Declaration

    diff --git a/docs/Listable/Protocols/ItemContent.html b/docs/Listable/Protocols/ItemContent.html index b77a74a01..a89d045de 100644 --- a/docs/Listable/Protocols/ItemContent.html +++ b/docs/Listable/Protocols/ItemContent.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - width - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var width: CustomWidth
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - init(width:) + + + defaultValue
    @@ -598,16 +609,14 @@

    Declaration

    -

    Undocumented

    +

    The default value used when accessing the value, if none is set.

    Declaration

    Swift

    -
    public init(
    -    width : CustomWidth = .default
    -)
    +
    static var defaultValue: Self { get }
    @@ -622,7 +631,7 @@

    Declaration

    diff --git a/docs/Listable/Protocols/ListEnvironmentKey.html b/docs/Listable/Protocols/ListEnvironmentKey.html index a5e96d412..4a94a26a3 100644 --- a/docs/Listable/Protocols/ListEnvironmentKey.html +++ b/docs/Listable/Protocols/ListEnvironmentKey.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - itemSpacing - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var itemSpacing: CGFloat?
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var itemToSectionFooterSpacing: CGFloat?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - width - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var width: CustomWidth
    - -
    -
    -
    -
    -
  • -
  • -
    @@ -652,18 +609,14 @@

    Declaration

    -

    Undocumented

    +

    The default value used when accessing the value, if none is set.

    Declaration

    Swift

    -
    public init(
    -    itemSpacing : CGFloat? = nil,
    -    itemToSectionFooterSpacing : CGFloat? = nil,
    -    width : CustomWidth = .default
    -)
    +
    static var defaultValue: Self { get }
    @@ -678,7 +631,7 @@

    Declaration

    diff --git a/docs/Listable/Structs.html b/docs/Listable/Structs.html index d00da3942..2380677ec 100644 --- a/docs/Listable/Structs.html +++ b/docs/Listable/Structs.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • @@ -832,15 +856,50 @@

    Declaration

    -

    Undocumented

    +

    HeaderFooterLayouts allows you to provide ListLayout-specific layout configuration for +individual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.

    + +

    For example, if you want to specify a custom layout for table layouts, you +would do the following on your header:

    +
    myHeader.layouts.table = .init(
    +    width: .fill
    +)
    +
    - See more +

    And then, when the HeaderFooter is used within a .table style +list layout, the provided layout will be used.

    + +

    If you plan on swapping between multiple ListLayout types on your list, +you can provide multiple layouts. The correct one will be used at the correct time:

    +
    myHeader.layouts.table = .init(
    +    width: .fill
    +)
    +
    +myHeader.layouts.otherLayout = .init(
    +    width: 300,
    +    alignment: .left
    +    padding: 10
    +)
    +
    +

    Note

    + +

    When implementing your own custom layout, you should add an extension to HeaderFooterLayouts, +to provide easier access to your layout-specific HeaderFooterLayoutsValue type, like so:

    +
    extension HeaderFooterLayouts {
    +    public var table : TableAppearance.HeaderFooter.Layout {
    +        get { self[TableAppearance.HeaderFooter.Layout.self] }
    +        set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }
    +    }
    +}
    +
    + + See more

    Declaration

    Swift

    -
    public struct HeaderFooterLayout : Equatable
    +
    public struct HeaderFooterLayouts
    @@ -1002,9 +1061,9 @@

    Declaration

  • - - - ItemLayout + + + ItemLayouts
    @@ -1012,15 +1071,49 @@

    Declaration

    -

    Undocumented

    +

    ItemLayouts allows you to provide ListLayout-specific layout configuration for +individual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.

    + +

    For example, if you want to specify a custom layout for table layouts, you +would do the following on your item:

    +
    myItem.layouts.table = .init(
    +    width: .fill
    +)
    +
    - See more +

    And then, when the Item is used within a .table style +list layout, the provided layout will be used.

    + +

    If you plan on swapping between multiple ListLayout types on your list, +you can provide multiple layouts. The correct one will be used at the correct time:

    +
    myItem.layouts.table = .init(
    +    width: .fill
    +)
    +
    +myItem.layouts.otherLayout = .init(
    +    width: 300,
    +    alignment: .left
    +)
    +
    +

    Note

    + +

    When implementing your own custom layout, you should add an extension to ItemLayouts, +to provide easier access to your layout-specific ItemLayoutsValue type, like so:

    +
    extension ItemLayoutsValue {
    +    public var table : TableAppearance.Item.Layout {
    +        get { self[TableAppearance.Item.Layout.self] }
    +        set { self[TableAppearance.Item.Layout.self] = newValue }
    +    }
    +}
    +
    + + See more

    Declaration

    Swift

    -
    public struct ItemLayout : Equatable
    +
    public struct ItemLayouts
    @@ -1102,7 +1195,7 @@

    Declaration

    customize the layoutAppearance of the provided list type.

    For example, to use a standard list layout, and customize the layout, your code would look something like this:

    -
    listView.layout = .list {
    +
    listView.layout = .table {
         $0.stickySectionHeaders = true
     
         $0.layout.padding = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
    @@ -1165,9 +1258,9 @@ 

    Declaration

  • @@ -1175,96 +1268,49 @@

    Declaration

    -

    ListAppearance defines the appearance and layout attribute for list layouts within a Listable list.

    +

    SectionLayouts allows you to provide ListLayout-specific layout configuration for +individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.

    + +

    For example, if you want to specify a custom layout for table layouts, you +would do the following on your section:

    +
    mySection.layouts.table = .init(
    +    width: .fill
    +)
    +
    -

    The below diagram shows where each of the properties on the ListAppearance.Layout values are -applied when laying out the list.

    +

    And then, when the Section is used within a .table style +list layout, the provided layout will be used.

    + +

    If you plan on swapping between multiple ListLayout types on your list, +you can provide multiple layouts. The correct one will be used at the correct time:

    +
    mySection.layouts.table = .init(
    +    width: .fill
    +)
    +
    +mySection.layouts.otherLayout = .init(
    +    width: 300,
    +    alignment: .left
    +)
    +

    Note

    -

    Do not edit this ASCII diagram directly. -Edit the ListAppearance.monopic file in this directory using Monodraw.

    -
    ┌─────────────────────────────────────────────────────────────────┐
    -                          padding.top                            
    -   ┌─────────────────────────────────────────────────────────┐   
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    -   ││                      List Header                      ││   
    -   ││                                                       ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                                                               
    -                  headerToFirstSectionSpacing                  
    -                                                               
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    -   ││                    Section Header                     ││   
    -   ││                                                       ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                  sectionHeaderBottomSpacing                   
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                          itemSpacing                          
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                  itemToSectionFooterSpacing                   
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    - p ││                    Section Footer                     ││ p 
    - a ││                                                       ││ a 
    - d │└───────────────────────────────────────────────────────┘│ d 
    - d                                                           d 
    - i                interSectionSpacingWithFooter              i 
    - n                                                           n 
    - g │┌───────────────────────────────────────────────────────┐│ g 
    - . ││                                                       ││ . 
    - l ││                    Section Header                     ││ r 
    - e ││                                                       ││ i 
    - f │└───────────────────────────────────────────────────────┘│ g 
    - t                sectionHeaderBottomSpacing                 h 
    -   │┌───────────────────────────────────────────────────────┐│ t 
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                          itemSpacing                          
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                                                               
    -                 interSectionSpacingWithNoFooter               
    -                                                               
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    -   ││                    Section Header                     ││   
    -   ││                                                       ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                  sectionHeaderBottomSpacing                   
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                          itemSpacing                          
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                                                               
    -                  lastSectionToFooterSpacing                   
    -                                                               
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    -   ││                      List Footer                      ││   
    -   ││                                                       ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -   └─────────────────────────────────────────────────────────┘   
    -                         padding.bottom                          
    -└─────────────────────────────────────────────────────────────────┘
    +

    When implementing your own custom layout, you should add an extension to SectionLayouts, +to provide easier access to your layout-specific SectionLayoutsValue type, like so:

    +
    extension SectionLayouts {
    +    public var table : TableAppearance.Section.Layout {
    +        get { self[TableAppearance.Section.Layout.self] }
    +        set { self[TableAppearance.Section.Layout.self] = newValue }
    +    }
    +}
     
    - See more + See more

    Declaration

    Swift

    -
    public struct ListAppearance : ListLayoutAppearance
    +
    public struct SectionLayouts
    @@ -1471,6 +1517,115 @@

    Declaration

  • +
  • +
    + + + + TableAppearance + +
    +
    +
    +
    +
    +
    +

    TableAppearance defines the appearance and layout attribute for list layouts within a Listable list.

    + +

    The below diagram shows where each of the properties on the TableAppearance.Layout values are +applied when laying out the list.

    +

    Note

    + +

    Do not edit this ASCII diagram directly. +Edit the TableAppearance.monopic file in this directory using Monodraw.

    +
    ┌─────────────────────────────────────────────────────────────────┐
    +                          padding.top                            
    +   ┌─────────────────────────────────────────────────────────┐   
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    +   ││                      List Header                      ││   
    +   ││                                                       ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                                                               
    +                  headerToFirstSectionSpacing                  
    +                                                               
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    +   ││                    Section Header                     ││   
    +   ││                                                       ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                  sectionHeaderBottomSpacing                   
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                          itemSpacing                          
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                  itemToSectionFooterSpacing                   
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    + p ││                    Section Footer                     ││ p 
    + a ││                                                       ││ a 
    + d │└───────────────────────────────────────────────────────┘│ d 
    + d                                                           d 
    + i                interSectionSpacingWithFooter              i 
    + n                                                           n 
    + g │┌───────────────────────────────────────────────────────┐│ g 
    + . ││                                                       ││ . 
    + l ││                    Section Header                     ││ r 
    + e ││                                                       ││ i 
    + f │└───────────────────────────────────────────────────────┘│ g 
    + t                sectionHeaderBottomSpacing                 h 
    +   │┌───────────────────────────────────────────────────────┐│ t 
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                          itemSpacing                          
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                                                               
    +                 interSectionSpacingWithNoFooter               
    +                                                               
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    +   ││                    Section Header                     ││   
    +   ││                                                       ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                  sectionHeaderBottomSpacing                   
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                          itemSpacing                          
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                                                               
    +                  lastSectionToFooterSpacing                   
    +                                                               
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    +   ││                      List Footer                      ││   
    +   ││                                                       ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +   └─────────────────────────────────────────────────────────┘   
    +                         padding.bottom                          
    +└─────────────────────────────────────────────────────────────────┘
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct TableAppearance : ListLayoutAppearance
    + +
    +
    +
    +
    +
  • @@ -1979,7 +2134,7 @@

    Declaration

    diff --git a/docs/Listable/Structs/Appearance.html b/docs/Listable/Structs/Appearance.html index de69e13e8..9fabd684b 100644 --- a/docs/Listable/Structs/Appearance.html +++ b/docs/Listable/Structs/Appearance.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ +
  • + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews
  • - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • @@ -1226,7 +1250,7 @@

    Declaration

    Declaration

    Swift

    -
    public mutating func callAsFunction<Identifier>(_ identifier: Identifier, build: Section.Build) where Identifier : Hashable
    +
    public mutating func callAsFunction<Identifier>(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable
    @@ -1241,7 +1265,7 @@

    Declaration

    diff --git a/docs/Listable/Structs/DefaultItemProperties.html b/docs/Listable/Structs/DefaultItemProperties.html index 54ff77ac3..c2f03435c 100644 --- a/docs/Listable/Structs/DefaultItemProperties.html +++ b/docs/Listable/Structs/DefaultItemProperties.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -613,7 +637,7 @@

    Declaration

    Declaration

    Swift

    -
    public var layout: ItemLayout?
    +
    public var layouts: ItemLayouts?
    @@ -704,9 +728,9 @@

    Declaration

  • @@ -723,7 +747,7 @@

    Declaration

    Swift

    public init(
         sizing : Sizing? = nil,
    -    layout : ItemLayout? = nil,
    +    layouts : ItemLayouts? = nil,
         selectionStyle : ItemSelectionStyle? = nil,
         insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,
         swipeActions : SwipeActionsConfiguration? = nil
    @@ -742,7 +766,7 @@ 

    Declaration

    diff --git a/docs/Listable/Structs/EmbeddedList.html b/docs/Listable/Structs/EmbeddedList.html index 31699d1e0..0d615f4ac 100644 --- a/docs/Listable/Structs/EmbeddedList.html +++ b/docs/Listable/Structs/EmbeddedList.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + +
  • +
    + + + + ItemLayout + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct ItemLayout : ItemLayoutsValue
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + HeaderFooterLayout + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct HeaderFooterLayout : HeaderFooterLayoutsValue
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SectionLayout + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct SectionLayout : SectionLayoutsValue
    + +
    +
    +
    +
    +
  • @@ -788,7 +896,7 @@

    Declaration

    diff --git a/docs/Listable/Structs/Section/Columns.html b/docs/Listable/Structs/GridAppearance/HeaderFooterLayout.html similarity index 89% rename from docs/Listable/Structs/Section/Columns.html rename to docs/Listable/Structs/GridAppearance/HeaderFooterLayout.html index 6dc3f9eea..5afe5b9a4 100644 --- a/docs/Listable/Structs/Section/Columns.html +++ b/docs/Listable/Structs/GridAppearance/HeaderFooterLayout.html @@ -1,7 +1,7 @@ - Columns Structure Reference + HeaderFooterLayout Structure Reference @@ -14,16 +14,16 @@ - + - +

    Listable - (44% documented) + (45% documented)

    @@ -44,7 +44,7 @@

    @@ -256,6 +256,9 @@ + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
    diff --git a/docs/Listable/Structs/Section/Layout.html b/docs/Listable/Structs/GridAppearance/SectionLayout.html similarity index 89% rename from docs/Listable/Structs/Section/Layout.html rename to docs/Listable/Structs/GridAppearance/SectionLayout.html index afd302eff..eb4b749ba 100644 --- a/docs/Listable/Structs/Section/Layout.html +++ b/docs/Listable/Structs/GridAppearance/SectionLayout.html @@ -1,7 +1,7 @@ - Layout Structure Reference + SectionLayout Structure Reference @@ -14,16 +14,16 @@ - + - +

    Listable - (44% documented) + (45% documented)

    @@ -44,7 +44,7 @@

    @@ -256,6 +256,9 @@ + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
    diff --git a/docs/Listable/Structs/GridAppearance/Sizing/ItemSize.html b/docs/Listable/Structs/GridAppearance/Sizing/ItemSize.html index 60ecd8c2a..430712b73 100644 --- a/docs/Listable/Structs/GridAppearance/Sizing/ItemSize.html +++ b/docs/Listable/Structs/GridAppearance/Sizing/ItemSize.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

    + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -632,7 +656,7 @@

    Declaration

    Declaration

    Swift

    -
    public var layout: HeaderFooterLayout
    +
    public var layouts: HeaderFooterLayouts
    @@ -793,9 +817,9 @@

    Declaration

  • @@ -813,7 +837,7 @@

    Declaration

    public init(
         _ content : Content,
         sizing : Sizing = .thatFits(.init(.atLeast(.default))),
    -    layout : HeaderFooterLayout = HeaderFooterLayout(),
    +    layouts : HeaderFooterLayouts = .init(),
         onTap : OnTap? = nil
     )
    @@ -928,7 +952,7 @@

    Declaration

    diff --git a/docs/Listable/Structs/HeaderFooterContentViews.html b/docs/Listable/Structs/HeaderFooterContentViews.html index 6b71e3207..77a2c3e2e 100644 --- a/docs/Listable/Structs/HeaderFooterContentViews.html +++ b/docs/Listable/Structs/HeaderFooterContentViews.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -660,7 +684,7 @@

    Declaration

    Declaration

    Swift

    -
    public var layout: ItemLayout
    +
    public var layouts: ItemLayouts
    @@ -1091,9 +1115,9 @@

    Declaration

  • @@ -1111,7 +1135,7 @@

    Declaration

    public init(
         _ content : Content,
         sizing : Sizing? = nil,
    -    layout : ItemLayout? = nil,
    +    layouts : ItemLayouts? = nil,
         selectionStyle : ItemSelectionStyle? = nil,
         insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,
         swipeActions : SwipeActionsConfiguration? = nil,
    @@ -1527,7 +1551,7 @@ 

    Available where sizing: .fixed(height: 200) ) { list in - list.layout = .list { + list.layout = .table { $0.direction = .horizontal } @@ -1601,7 +1625,7 @@

    Declaration

    diff --git a/docs/Listable/Structs/Item/OnDeselect.html b/docs/Listable/Structs/Item/OnDeselect.html index a4d4277f8..d278c19e9 100644 --- a/docs/Listable/Structs/Item/OnDeselect.html +++ b/docs/Listable/Structs/Item/OnDeselect.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + +
  • +
    + + + + insertionsAndRemovals + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let insertionsAndRemovals: InsertionsAndRemovals
    + +
    +
    +
    +
    +
  • @@ -639,6 +690,34 @@

    Declaration

  • +
  • +
    + + + + InsertionsAndRemovals + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct InsertionsAndRemovals
    + +
    +
    +
    +
    +
  • @@ -647,7 +726,7 @@

    Declaration

    diff --git a/docs/Listable/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html b/docs/Listable/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html new file mode 100644 index 000000000..8c549caa1 --- /dev/null +++ b/docs/Listable/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html @@ -0,0 +1,680 @@ + + + + InsertionsAndRemovals Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    InsertionsAndRemovals

    +
    +
    + +
    public struct InsertionsAndRemovals
    + +
    +
    +

    Undocumented

    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + sections + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var sections: ChangedIDs
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + items + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var items: ChangedIDs
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + ChangedIDs + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct ChangedIDs
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html b/docs/Listable/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html new file mode 100644 index 000000000..a773defc2 --- /dev/null +++ b/docs/Listable/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html @@ -0,0 +1,652 @@ + + + + ChangedIDs Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    ChangedIDs

    +
    +
    + +
    public struct ChangedIDs
    + +
    +
    +

    Undocumented

    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + inserted + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var inserted: Set<AnyIdentifier>
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + removed + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var removed: Set<AnyIdentifier>
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/Structs/ListStateObserver/DidScroll.html b/docs/Listable/Structs/ListStateObserver/DidScroll.html index d00641230..7b72067a5 100644 --- a/docs/Listable/Structs/ListStateObserver/DidScroll.html +++ b/docs/Listable/Structs/ListStateObserver/DidScroll.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

    + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + -
  • -
    - - - - layout - -
    -
    -
    -
    -
    -
    -

    The layout for the section and all its content. -Only relevant to the list layout type.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var layout: Layout
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - columns - -
    -
    -
    -
    -
    -
    -

    How columns within the section should be distributed. -Only relevant to the list layout type.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var columns: Columns
    - -
    -
    -
    -
    -
  • @@ -764,11 +732,11 @@

    Declaration

    - - + +
    - -

    Initialization

    + +

    Layout Specific Parameters

    @@ -776,9 +744,9 @@

    Initialization

  • - - - Build + + + layouts
    @@ -793,19 +761,32 @@

    Initialization

    Declaration

    Swift

    -
    public typealias Build = (inout Section) -> ()
    +
    public var layouts: SectionLayouts
  • + + +
    +
    + + +
    + +

    Initialization

    +

    +
    +
    +
    -
  • -
    - - - - Layout - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public struct Layout : Equatable
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - Columns - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public struct Columns
    - -
    -
    -
    -
    -
  • @@ -1207,7 +1129,7 @@

    Declaration

    diff --git a/docs/Listable/Structs/SectionLayouts.html b/docs/Listable/Structs/SectionLayouts.html new file mode 100644 index 000000000..7e32f8328 --- /dev/null +++ b/docs/Listable/Structs/SectionLayouts.html @@ -0,0 +1,755 @@ + + + + SectionLayouts Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    SectionLayouts

    +
    +
    + +
    public struct SectionLayouts
    + +
    +
    +

    SectionLayouts allows you to provide ListLayout-specific layout configuration for +individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.

    + +

    For example, if you want to specify a custom layout for table layouts, you +would do the following on your section:

    +
    mySection.layouts.table = .init(
    +    width: .fill
    +)
    +
    + +

    And then, when the Section is used within a .table style +list layout, the provided layout will be used.

    + +

    If you plan on swapping between multiple ListLayout types on your list, +you can provide multiple layouts. The correct one will be used at the correct time:

    +
    mySection.layouts.table = .init(
    +    width: .fill
    +)
    +
    +mySection.layouts.otherLayout = .init(
    +    width: 300,
    +    alignment: .left
    +)
    +
    +

    Note

    + +

    When implementing your own custom layout, you should add an extension to SectionLayouts, +to provide easier access to your layout-specific SectionLayoutsValue type, like so:

    +
    extension SectionLayouts {
    +    public var table : TableAppearance.Section.Layout {
    +        get { self[TableAppearance.Section.Layout.self] }
    +        set { self[TableAppearance.Section.Layout.self] = newValue }
    +    }
    +}
    +
    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + init(_:) + +
      +
      +
      +
      +
      +
      +

      Creates a new instance of the layouts, with an optional configure +closure, to allow you to set up styling inline.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(
      +    _ configure : (inout Self) -> () = { _ in }
      +)
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + subscript(_:) + +
      +
      +
      +
      +
      +
      +

      Allows accessing the various SectionLayoutsValues stored within the object. +This method will return the defaultValue for a value if none is set.

      +

      Note

      + +

      When implementing your own custom layout, you should add an extension to SectionLayouts, +to provide easier access to your layout-specific SectionLayoutsValue type.

      +
      extension SectionLayouts {
      +    public var table : TableAppearance.Section.Layout {
      +        get { self[TableAppearance.Section.Layout.self] }
      +        set { self[TableAppearance.Section.Layout.self] = newValue }
      +    }
      +}
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public subscript<ValueType>(valueType: ValueType.Type) -> ValueType where ValueType : SectionLayoutsValue { get set }
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + grid + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var grid: GridAppearance.SectionLayout { get set }
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + table + +
      +
      +
      +
      +
      +
      +

      Allows customization of a Section‘s layout when it is presented within a .table style layout.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var table: TableAppearance.SectionLayout { get set }
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/Structs/SwipeAction.html b/docs/Listable/Structs/SwipeAction.html index 855eeb3c9..5477fc581 100644 --- a/docs/Listable/Structs/SwipeAction.html +++ b/docs/Listable/Structs/SwipeAction.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

    + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - + - padding + padding
    @@ -588,9 +612,9 @@

    Declaration

  • - + - width + width
    @@ -615,9 +639,9 @@

    Declaration

  • @@ -643,9 +667,9 @@

    Declaration

  • @@ -670,9 +694,9 @@

    Declaration

  • @@ -697,9 +721,9 @@

    Declaration

  • @@ -725,9 +749,9 @@

    Declaration

  • @@ -752,9 +776,9 @@

    Declaration

  • @@ -780,9 +804,9 @@

    Declaration

  • @@ -808,9 +832,9 @@

    Declaration

  • @@ -845,9 +869,9 @@

    Declaration

  • @@ -877,7 +901,7 @@

    Declaration

    diff --git a/docs/Listable/Structs/TableAppearance/SectionLayout.html b/docs/Listable/Structs/TableAppearance/SectionLayout.html new file mode 100644 index 000000000..4f9939bf1 --- /dev/null +++ b/docs/Listable/Structs/TableAppearance/SectionLayout.html @@ -0,0 +1,764 @@ + + + + SectionLayout Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    SectionLayout

    +
    +
    + +
    public struct SectionLayout : Equatable, SectionLayoutsValue
    + +
    +
    +

    Undocumented

    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + width + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var width: CustomWidth
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      Overrides the calculated spacing after this section

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var customInterSectionSpacing: CGFloat?
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + columns + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var columns: Columns
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(
      +    width : CustomWidth = .default,
      +    customInterSectionSpacing : CGFloat? = nil,
      +    columns : Columns = .one
      +)
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + defaultValue + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static var defaultValue: `Self` { get }
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + Columns + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct Columns : Equatable
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/Structs/TableAppearance/SectionLayout/Columns.html b/docs/Listable/Structs/TableAppearance/SectionLayout/Columns.html new file mode 100644 index 000000000..988a0943d --- /dev/null +++ b/docs/Listable/Structs/TableAppearance/SectionLayout/Columns.html @@ -0,0 +1,706 @@ + + + + Columns Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    Columns

    +
    +
    + +
    public struct Columns : Equatable
    + +
    +
    +

    Undocumented

    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + count + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var count: Int
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + spacing + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var spacing: CGFloat
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + one + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static var one: Columns { get }
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + init(count:spacing:) + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(count: Int = 1, spacing: CGFloat = 0.0)
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/Structs/ListAppearance/Sizing.html b/docs/Listable/Structs/TableAppearance/Sizing.html similarity index 90% rename from docs/Listable/Structs/ListAppearance/Sizing.html rename to docs/Listable/Structs/TableAppearance/Sizing.html index 59ecc513c..83d830165 100644 --- a/docs/Listable/Structs/ListAppearance/Sizing.html +++ b/docs/Listable/Structs/TableAppearance/Sizing.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • @@ -588,9 +612,9 @@

    Declaration

  • @@ -615,9 +639,9 @@

    Declaration

  • @@ -642,9 +666,9 @@

    Declaration

  • @@ -669,9 +693,9 @@

    Declaration

  • @@ -696,9 +720,9 @@

    Declaration

  • @@ -723,9 +747,9 @@

    Declaration

  • @@ -752,9 +776,9 @@

    Declaration

  • @@ -787,9 +811,9 @@

    Declaration

  • @@ -819,7 +843,7 @@

    Declaration

    diff --git a/docs/Listable/Typealiases.html b/docs/Listable/Typealiases.html index c67ced74e..d907a2c66 100644 --- a/docs/Listable/Typealiases.html +++ b/docs/Listable/Typealiases.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + +
  • + +
    +
    +
    +
    +
    +

    The HeaderFooterLayoutsValue protocol provides a default value for the different layouts stored +within HeaderFooterLayouts. Provide a defaultValue with reasonable defaults, as the +developer should not need to set these values at all times when using your layout.

    +
    public struct Layout : Equatable, HeaderFooterLayoutsValue
    +{
    +    public var width : CGFloat
    +    public var minHeight : CGFloat
    +
    +    ...
    +
    +    public static var defaultValue : Self {
    +        ...
    +    }
    +}
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol HeaderFooterLayoutsValue
    + +
    +
    +
    +
    +
  • @@ -876,6 +942,48 @@

    Declaration

  • +
  • +
    + + + + ItemLayoutsValue + +
    +
    +
    +
    +
    +
    +

    The ItemLayoutsValue protocol provides a default value for the different layouts stored +within ItemLayouts. Provide a defaultValue with reasonable defaults, as the +developer should not need to set these values at all times when using your layout.

    +
    public struct Layout : Equatable, ItemLayoutsValue
    +{
    +    public var width : CGFloat
    +    public var minHeight : CGFloat
    +
    +    ...
    +
    +    public static var defaultValue : Self {
    +        ...
    +    }
    +}
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol ItemLayoutsValue
    + +
    +
    +
    +
    +
  • @@ -1217,6 +1325,48 @@

    Declaration

    +
  • +
    + + + + SectionLayoutsValue + +
    +
    +
    +
    +
    +
    +

    The SectionLayoutsValue protocol provides a default value for the different layouts stored +within SectionLayouts. Provide a defaultValue with reasonable defaults, as the +developer should not need to set these values at all times when using your layout.

    +
    public struct Layout : Equatable, SectionLayoutsValue
    +{
    +    public var width : CGFloat
    +    public var minHeight : CGFloat
    +
    +    ...
    +
    +    public static var defaultValue : Self {
    +        ...
    +    }
    +}
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol SectionLayoutsValue
    + +
    +
    +
    +
    +
  • @@ -1225,7 +1375,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyHeaderFooter.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyHeaderFooter.html index aedda60bc..9b5618da7 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyHeaderFooter.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyHeaderFooter.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

    + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -605,7 +629,7 @@

    Declaration

    Declaration

    Swift

    -
    var layout: HeaderFooterLayout { get set }
    +
    var layouts: HeaderFooterLayouts { get set }
    @@ -620,7 +644,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyHeaderFooter_Internal.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyHeaderFooter_Internal.html index 3a3e2c116..3866ba60a 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyHeaderFooter_Internal.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyHeaderFooter_Internal.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -578,7 +602,7 @@

    AnyHeaderFooter_Internal

    Declaration

    Swift

    -
    var layout: HeaderFooterLayout { get }
    +
    var layouts: HeaderFooterLayouts { get }
    @@ -678,7 +702,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyItem.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyItem.html index 6df77714d..792c6355b 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyItem.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyItem.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -659,7 +683,7 @@

    Declaration

    Declaration

    Swift

    -
    var layout: ItemLayout { get set }
    +
    var layouts: ItemLayouts { get }
    @@ -782,7 +806,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyItem_Internal.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyItem_Internal.html index 82957cd86..368ea613d 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyItem_Internal.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/AnyItem_Internal.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - width - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var width: CustomWidth
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - init(width:) + + + defaultValue
    @@ -598,16 +609,14 @@

    Declaration

    -

    Undocumented

    +

    The default value used when accessing the value, if none is set.

    Declaration

    Swift

    -
    public init(
    -    width : CustomWidth = .default
    -)
    +
    static var defaultValue: Self { get }
    @@ -622,7 +631,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/ListEnvironmentKey.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/ListEnvironmentKey.html index a5e96d412..4a94a26a3 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/ListEnvironmentKey.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Protocols/ListEnvironmentKey.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • @@ -832,15 +856,50 @@

    Declaration

    -

    Undocumented

    +

    HeaderFooterLayouts allows you to provide ListLayout-specific layout configuration for +individual headers and footers within a list. Eg, customize the layout for a header when it is in a table, a grid, etc.

    + +

    For example, if you want to specify a custom layout for table layouts, you +would do the following on your header:

    +
    myHeader.layouts.table = .init(
    +    width: .fill
    +)
    +
    - See more +

    And then, when the HeaderFooter is used within a .table style +list layout, the provided layout will be used.

    + +

    If you plan on swapping between multiple ListLayout types on your list, +you can provide multiple layouts. The correct one will be used at the correct time:

    +
    myHeader.layouts.table = .init(
    +    width: .fill
    +)
    +
    +myHeader.layouts.otherLayout = .init(
    +    width: 300,
    +    alignment: .left
    +    padding: 10
    +)
    +
    +

    Note

    + +

    When implementing your own custom layout, you should add an extension to HeaderFooterLayouts, +to provide easier access to your layout-specific HeaderFooterLayoutsValue type, like so:

    +
    extension HeaderFooterLayouts {
    +    public var table : TableAppearance.HeaderFooter.Layout {
    +        get { self[TableAppearance.HeaderFooter.Layout.self] }
    +        set { self[TableAppearance.HeaderFooter.Layout.self] = newValue }
    +    }
    +}
    +
    + + See more

    Declaration

    Swift

    -
    public struct HeaderFooterLayout : Equatable
    +
    public struct HeaderFooterLayouts
    @@ -1002,9 +1061,9 @@

    Declaration

  • - - - ItemLayout + + + ItemLayouts
    @@ -1012,15 +1071,49 @@

    Declaration

    -

    Undocumented

    +

    ItemLayouts allows you to provide ListLayout-specific layout configuration for +individual items within a list. Eg, customize the layout for an item when it is in a table, a grid, etc.

    + +

    For example, if you want to specify a custom layout for table layouts, you +would do the following on your item:

    +
    myItem.layouts.table = .init(
    +    width: .fill
    +)
    +
    - See more +

    And then, when the Item is used within a .table style +list layout, the provided layout will be used.

    + +

    If you plan on swapping between multiple ListLayout types on your list, +you can provide multiple layouts. The correct one will be used at the correct time:

    +
    myItem.layouts.table = .init(
    +    width: .fill
    +)
    +
    +myItem.layouts.otherLayout = .init(
    +    width: 300,
    +    alignment: .left
    +)
    +
    +

    Note

    + +

    When implementing your own custom layout, you should add an extension to ItemLayouts, +to provide easier access to your layout-specific ItemLayoutsValue type, like so:

    +
    extension ItemLayoutsValue {
    +    public var table : TableAppearance.Item.Layout {
    +        get { self[TableAppearance.Item.Layout.self] }
    +        set { self[TableAppearance.Item.Layout.self] = newValue }
    +    }
    +}
    +
    + + See more

    Declaration

    Swift

    -
    public struct ItemLayout : Equatable
    +
    public struct ItemLayouts
    @@ -1102,7 +1195,7 @@

    Declaration

    customize the layoutAppearance of the provided list type.

    For example, to use a standard list layout, and customize the layout, your code would look something like this:

    -
    listView.layout = .list {
    +
    listView.layout = .table {
         $0.stickySectionHeaders = true
     
         $0.layout.padding = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
    @@ -1165,9 +1258,9 @@ 

    Declaration

  • @@ -1175,96 +1268,49 @@

    Declaration

    -

    ListAppearance defines the appearance and layout attribute for list layouts within a Listable list.

    +

    SectionLayouts allows you to provide ListLayout-specific layout configuration for +individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.

    + +

    For example, if you want to specify a custom layout for table layouts, you +would do the following on your section:

    +
    mySection.layouts.table = .init(
    +    width: .fill
    +)
    +
    -

    The below diagram shows where each of the properties on the ListAppearance.Layout values are -applied when laying out the list.

    +

    And then, when the Section is used within a .table style +list layout, the provided layout will be used.

    + +

    If you plan on swapping between multiple ListLayout types on your list, +you can provide multiple layouts. The correct one will be used at the correct time:

    +
    mySection.layouts.table = .init(
    +    width: .fill
    +)
    +
    +mySection.layouts.otherLayout = .init(
    +    width: 300,
    +    alignment: .left
    +)
    +

    Note

    -

    Do not edit this ASCII diagram directly. -Edit the ListAppearance.monopic file in this directory using Monodraw.

    -
    ┌─────────────────────────────────────────────────────────────────┐
    -                          padding.top                            
    -   ┌─────────────────────────────────────────────────────────┐   
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    -   ││                      List Header                      ││   
    -   ││                                                       ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                                                               
    -                  headerToFirstSectionSpacing                  
    -                                                               
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    -   ││                    Section Header                     ││   
    -   ││                                                       ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                  sectionHeaderBottomSpacing                   
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                          itemSpacing                          
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                  itemToSectionFooterSpacing                   
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    - p ││                    Section Footer                     ││ p 
    - a ││                                                       ││ a 
    - d │└───────────────────────────────────────────────────────┘│ d 
    - d                                                           d 
    - i                interSectionSpacingWithFooter              i 
    - n                                                           n 
    - g │┌───────────────────────────────────────────────────────┐│ g 
    - . ││                                                       ││ . 
    - l ││                    Section Header                     ││ r 
    - e ││                                                       ││ i 
    - f │└───────────────────────────────────────────────────────┘│ g 
    - t                sectionHeaderBottomSpacing                 h 
    -   │┌───────────────────────────────────────────────────────┐│ t 
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                          itemSpacing                          
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                                                               
    -                 interSectionSpacingWithNoFooter               
    -                                                               
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    -   ││                    Section Header                     ││   
    -   ││                                                       ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                  sectionHeaderBottomSpacing                   
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                          itemSpacing                          
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                         Item                          ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -                                                               
    -                  lastSectionToFooterSpacing                   
    -                                                               
    -   │┌───────────────────────────────────────────────────────┐│   
    -   ││                                                       ││   
    -   ││                      List Footer                      ││   
    -   ││                                                       ││   
    -   │└───────────────────────────────────────────────────────┘│   
    -   └─────────────────────────────────────────────────────────┘   
    -                         padding.bottom                          
    -└─────────────────────────────────────────────────────────────────┘
    +

    When implementing your own custom layout, you should add an extension to SectionLayouts, +to provide easier access to your layout-specific SectionLayoutsValue type, like so:

    +
    extension SectionLayouts {
    +    public var table : TableAppearance.Section.Layout {
    +        get { self[TableAppearance.Section.Layout.self] }
    +        set { self[TableAppearance.Section.Layout.self] = newValue }
    +    }
    +}
     
    - See more + See more

    Declaration

    Swift

    -
    public struct ListAppearance : ListLayoutAppearance
    +
    public struct SectionLayouts
    @@ -1471,6 +1517,115 @@

    Declaration

  • +
  • +
    + + + + TableAppearance + +
    +
    +
    +
    +
    +
    +

    TableAppearance defines the appearance and layout attribute for list layouts within a Listable list.

    + +

    The below diagram shows where each of the properties on the TableAppearance.Layout values are +applied when laying out the list.

    +

    Note

    + +

    Do not edit this ASCII diagram directly. +Edit the TableAppearance.monopic file in this directory using Monodraw.

    +
    ┌─────────────────────────────────────────────────────────────────┐
    +                          padding.top                            
    +   ┌─────────────────────────────────────────────────────────┐   
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    +   ││                      List Header                      ││   
    +   ││                                                       ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                                                               
    +                  headerToFirstSectionSpacing                  
    +                                                               
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    +   ││                    Section Header                     ││   
    +   ││                                                       ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                  sectionHeaderBottomSpacing                   
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                          itemSpacing                          
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                  itemToSectionFooterSpacing                   
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    + p ││                    Section Footer                     ││ p 
    + a ││                                                       ││ a 
    + d │└───────────────────────────────────────────────────────┘│ d 
    + d                                                           d 
    + i                interSectionSpacingWithFooter              i 
    + n                                                           n 
    + g │┌───────────────────────────────────────────────────────┐│ g 
    + . ││                                                       ││ . 
    + l ││                    Section Header                     ││ r 
    + e ││                                                       ││ i 
    + f │└───────────────────────────────────────────────────────┘│ g 
    + t                sectionHeaderBottomSpacing                 h 
    +   │┌───────────────────────────────────────────────────────┐│ t 
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                          itemSpacing                          
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                                                               
    +                 interSectionSpacingWithNoFooter               
    +                                                               
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    +   ││                    Section Header                     ││   
    +   ││                                                       ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                  sectionHeaderBottomSpacing                   
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                          itemSpacing                          
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                         Item                          ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +                                                               
    +                  lastSectionToFooterSpacing                   
    +                                                               
    +   │┌───────────────────────────────────────────────────────┐│   
    +   ││                                                       ││   
    +   ││                      List Footer                      ││   
    +   ││                                                       ││   
    +   │└───────────────────────────────────────────────────────┘│   
    +   └─────────────────────────────────────────────────────────┘   
    +                         padding.bottom                          
    +└─────────────────────────────────────────────────────────────────┘
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct TableAppearance : ListLayoutAppearance
    + +
    +
    +
    +
    +
  • @@ -1979,7 +2134,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Appearance.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Appearance.html index de69e13e8..9fabd684b 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Appearance.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Appearance.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ +
  • + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews
  • - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • @@ -1226,7 +1250,7 @@

    Declaration

    Declaration

    Swift

    -
    public mutating func callAsFunction<Identifier>(_ identifier: Identifier, build: Section.Build) where Identifier : Hashable
    +
    public mutating func callAsFunction<Identifier>(_ identifier: Identifier, configure: Section.Configure) where Identifier : Hashable
    @@ -1241,7 +1265,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/DefaultItemProperties.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/DefaultItemProperties.html index 54ff77ac3..c2f03435c 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/DefaultItemProperties.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/DefaultItemProperties.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -613,7 +637,7 @@

    Declaration

    Declaration

    Swift

    -
    public var layout: ItemLayout?
    +
    public var layouts: ItemLayouts?
    @@ -704,9 +728,9 @@

    Declaration

  • @@ -723,7 +747,7 @@

    Declaration

    Swift

    public init(
         sizing : Sizing? = nil,
    -    layout : ItemLayout? = nil,
    +    layouts : ItemLayouts? = nil,
         selectionStyle : ItemSelectionStyle? = nil,
         insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,
         swipeActions : SwipeActionsConfiguration? = nil
    @@ -742,7 +766,7 @@ 

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/EmbeddedList.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/EmbeddedList.html index 31699d1e0..0d615f4ac 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/EmbeddedList.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/EmbeddedList.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + +
  • +
    + + + + ItemLayout + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct ItemLayout : ItemLayoutsValue
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + HeaderFooterLayout + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct HeaderFooterLayout : HeaderFooterLayoutsValue
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SectionLayout + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct SectionLayout : SectionLayoutsValue
    + +
    +
    +
    +
    +
  • @@ -788,7 +896,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Section/Columns.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/HeaderFooterLayout.html similarity index 89% rename from docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Section/Columns.html rename to docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/HeaderFooterLayout.html index 6dc3f9eea..5afe5b9a4 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Section/Columns.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/HeaderFooterLayout.html @@ -1,7 +1,7 @@ - Columns Structure Reference + HeaderFooterLayout Structure Reference @@ -14,16 +14,16 @@ - + - +

    Listable - (44% documented) + (45% documented)

    @@ -44,7 +44,7 @@

    @@ -256,6 +256,9 @@ + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Section/Layout.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/SectionLayout.html similarity index 89% rename from docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Section/Layout.html rename to docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/SectionLayout.html index afd302eff..eb4b749ba 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Section/Layout.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/SectionLayout.html @@ -1,7 +1,7 @@ - Layout Structure Reference + SectionLayout Structure Reference @@ -14,16 +14,16 @@ - + - +

    Listable - (44% documented) + (45% documented)

    @@ -44,7 +44,7 @@

    @@ -256,6 +256,9 @@ + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/Sizing/ItemSize.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/Sizing/ItemSize.html index 60ecd8c2a..430712b73 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/Sizing/ItemSize.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/GridAppearance/Sizing/ItemSize.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

    + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -632,7 +656,7 @@

    Declaration

    Declaration

    Swift

    -
    public var layout: HeaderFooterLayout
    +
    public var layouts: HeaderFooterLayouts
    @@ -793,9 +817,9 @@

    Declaration

  • @@ -813,7 +837,7 @@

    Declaration

    public init(
         _ content : Content,
         sizing : Sizing = .thatFits(.init(.atLeast(.default))),
    -    layout : HeaderFooterLayout = HeaderFooterLayout(),
    +    layouts : HeaderFooterLayouts = .init(),
         onTap : OnTap? = nil
     )
    @@ -928,7 +952,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/HeaderFooterContentViews.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/HeaderFooterContentViews.html index 6b71e3207..77a2c3e2e 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/HeaderFooterContentViews.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/HeaderFooterContentViews.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - - - layout + + + layouts
    @@ -660,7 +684,7 @@

    Declaration

    Declaration

    Swift

    -
    public var layout: ItemLayout
    +
    public var layouts: ItemLayouts
    @@ -1091,9 +1115,9 @@

    Declaration

  • @@ -1111,7 +1135,7 @@

    Declaration

    public init(
         _ content : Content,
         sizing : Sizing? = nil,
    -    layout : ItemLayout? = nil,
    +    layouts : ItemLayouts? = nil,
         selectionStyle : ItemSelectionStyle? = nil,
         insertAndRemoveAnimations : ItemInsertAndRemoveAnimations? = nil,
         swipeActions : SwipeActionsConfiguration? = nil,
    @@ -1527,7 +1551,7 @@ 

    Available where sizing: .fixed(height: 200) ) { list in - list.layout = .list { + list.layout = .table { $0.direction = .horizontal } @@ -1601,7 +1625,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Item/OnDeselect.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Item/OnDeselect.html index a4d4277f8..d278c19e9 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Item/OnDeselect.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/Item/OnDeselect.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + +
  • +
    + + + + insertionsAndRemovals + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let insertionsAndRemovals: InsertionsAndRemovals
    + +
    +
    +
    +
    +
  • @@ -639,6 +690,34 @@

    Declaration

  • +
  • +
    + + + + InsertionsAndRemovals + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct InsertionsAndRemovals
    + +
    +
    +
    +
    +
  • @@ -647,7 +726,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html new file mode 100644 index 000000000..8c549caa1 --- /dev/null +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html @@ -0,0 +1,680 @@ + + + + InsertionsAndRemovals Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    InsertionsAndRemovals

    +
    +
    + +
    public struct InsertionsAndRemovals
    + +
    +
    +

    Undocumented

    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + sections + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var sections: ChangedIDs
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + items + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var items: ChangedIDs
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + ChangedIDs + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct ChangedIDs
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html new file mode 100644 index 000000000..a773defc2 --- /dev/null +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html @@ -0,0 +1,652 @@ + + + + ChangedIDs Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    ChangedIDs

    +
    +
    + +
    public struct ChangedIDs
    + +
    +
    +

    Undocumented

    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + inserted + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var inserted: Set<AnyIdentifier>
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + removed + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var removed: Set<AnyIdentifier>
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/DidScroll.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/DidScroll.html index d00641230..7b72067a5 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/DidScroll.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListStateObserver/DidScroll.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

    + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + -
  • -
    - - - - layout - -
    -
    -
    -
    -
    -
    -

    The layout for the section and all its content. -Only relevant to the list layout type.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var layout: Layout
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - columns - -
    -
    -
    -
    -
    -
    -

    How columns within the section should be distributed. -Only relevant to the list layout type.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var columns: Columns
    - -
    -
    -
    -
    -
  • @@ -764,11 +732,11 @@

    Declaration

    - - + +
    - -

    Initialization

    + +

    Layout Specific Parameters

    @@ -776,9 +744,9 @@

    Initialization

  • - - - Build + + + layouts
    @@ -793,19 +761,32 @@

    Initialization

    Declaration

    Swift

    -
    public typealias Build = (inout Section) -> ()
    +
    public var layouts: SectionLayouts
  • + + +
    +
    + + +
    + +

    Initialization

    +

    +
    +
    +
    -
  • -
    - - - - Layout - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public struct Layout : Equatable
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - Columns - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public struct Columns
    - -
    -
    -
    -
    -
  • @@ -1207,7 +1129,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/SectionLayouts.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/SectionLayouts.html new file mode 100644 index 000000000..7e32f8328 --- /dev/null +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/SectionLayouts.html @@ -0,0 +1,755 @@ + + + + SectionLayouts Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    SectionLayouts

    +
    +
    + +
    public struct SectionLayouts
    + +
    +
    +

    SectionLayouts allows you to provide ListLayout-specific layout configuration for +individual sections within a list. Eg, customize the layout for a section when it is in a table, a grid, etc.

    + +

    For example, if you want to specify a custom layout for table layouts, you +would do the following on your section:

    +
    mySection.layouts.table = .init(
    +    width: .fill
    +)
    +
    + +

    And then, when the Section is used within a .table style +list layout, the provided layout will be used.

    + +

    If you plan on swapping between multiple ListLayout types on your list, +you can provide multiple layouts. The correct one will be used at the correct time:

    +
    mySection.layouts.table = .init(
    +    width: .fill
    +)
    +
    +mySection.layouts.otherLayout = .init(
    +    width: 300,
    +    alignment: .left
    +)
    +
    +

    Note

    + +

    When implementing your own custom layout, you should add an extension to SectionLayouts, +to provide easier access to your layout-specific SectionLayoutsValue type, like so:

    +
    extension SectionLayouts {
    +    public var table : TableAppearance.Section.Layout {
    +        get { self[TableAppearance.Section.Layout.self] }
    +        set { self[TableAppearance.Section.Layout.self] = newValue }
    +    }
    +}
    +
    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + init(_:) + +
      +
      +
      +
      +
      +
      +

      Creates a new instance of the layouts, with an optional configure +closure, to allow you to set up styling inline.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(
      +    _ configure : (inout Self) -> () = { _ in }
      +)
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + subscript(_:) + +
      +
      +
      +
      +
      +
      +

      Allows accessing the various SectionLayoutsValues stored within the object. +This method will return the defaultValue for a value if none is set.

      +

      Note

      + +

      When implementing your own custom layout, you should add an extension to SectionLayouts, +to provide easier access to your layout-specific SectionLayoutsValue type.

      +
      extension SectionLayouts {
      +    public var table : TableAppearance.Section.Layout {
      +        get { self[TableAppearance.Section.Layout.self] }
      +        set { self[TableAppearance.Section.Layout.self] = newValue }
      +    }
      +}
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public subscript<ValueType>(valueType: ValueType.Type) -> ValueType where ValueType : SectionLayoutsValue { get set }
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + grid + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var grid: GridAppearance.SectionLayout { get set }
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + table + +
      +
      +
      +
      +
      +
      +

      Allows customization of a Section‘s layout when it is presented within a .table style layout.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var table: TableAppearance.SectionLayout { get set }
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/SwipeAction.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/SwipeAction.html index 855eeb3c9..5477fc581 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/SwipeAction.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/SwipeAction.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

    + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • - + - padding + padding
    @@ -588,9 +612,9 @@

    Declaration

  • - + - width + width
    @@ -615,9 +639,9 @@

    Declaration

  • @@ -643,9 +667,9 @@

    Declaration

  • @@ -670,9 +694,9 @@

    Declaration

  • @@ -697,9 +721,9 @@

    Declaration

  • @@ -725,9 +749,9 @@

    Declaration

  • @@ -752,9 +776,9 @@

    Declaration

  • @@ -780,9 +804,9 @@

    Declaration

  • @@ -808,9 +832,9 @@

    Declaration

  • @@ -845,9 +869,9 @@

    Declaration

  • @@ -877,7 +901,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/TableAppearance/SectionLayout.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/TableAppearance/SectionLayout.html new file mode 100644 index 000000000..4f9939bf1 --- /dev/null +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/TableAppearance/SectionLayout.html @@ -0,0 +1,764 @@ + + + + SectionLayout Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    SectionLayout

    +
    +
    + +
    public struct SectionLayout : Equatable, SectionLayoutsValue
    + +
    +
    +

    Undocumented

    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + width + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var width: CustomWidth
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      Overrides the calculated spacing after this section

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var customInterSectionSpacing: CGFloat?
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + columns + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var columns: Columns
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(
      +    width : CustomWidth = .default,
      +    customInterSectionSpacing : CGFloat? = nil,
      +    columns : Columns = .one
      +)
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + defaultValue + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static var defaultValue: `Self` { get }
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + Columns + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct Columns : Equatable
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/TableAppearance/SectionLayout/Columns.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/TableAppearance/SectionLayout/Columns.html new file mode 100644 index 000000000..988a0943d --- /dev/null +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/TableAppearance/SectionLayout/Columns.html @@ -0,0 +1,706 @@ + + + + Columns Structure Reference + + + + + + + + + + + + + + + + +
    +

    + + Listable + + (45% documented) +

    + +

    +

    + +
    +

    + +

    + + + View on GitHub + +

    + +
    + + + +
    + +
    + +
    +
    +

    Columns

    +
    +
    + +
    public struct Columns : Equatable
    + +
    +
    +

    Undocumented

    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + count + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var count: Int
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + spacing + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var spacing: CGFloat
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + one + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static var one: Columns { get }
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + init(count:spacing:) + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(count: Int = 1, spacing: CGFloat = 0.0)
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + + diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListAppearance/Sizing.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/TableAppearance/Sizing.html similarity index 90% rename from docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListAppearance/Sizing.html rename to docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/TableAppearance/Sizing.html index 59ecc513c..83d830165 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/ListAppearance/Sizing.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Structs/TableAppearance/Sizing.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + +
  • @@ -588,9 +612,9 @@

    Declaration

  • @@ -615,9 +639,9 @@

    Declaration

  • @@ -642,9 +666,9 @@

    Declaration

  • @@ -669,9 +693,9 @@

    Declaration

  • @@ -696,9 +720,9 @@

    Declaration

  • @@ -723,9 +747,9 @@

    Declaration

  • @@ -752,9 +776,9 @@

    Declaration

  • @@ -787,9 +811,9 @@

    Declaration

  • @@ -819,7 +843,7 @@

    Declaration

    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Typealiases.html b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Typealiases.html index c67ced74e..d907a2c66 100644 --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Typealiases.html +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/Typealiases.html @@ -23,7 +23,7 @@ Listable - (44% documented) + (45% documented)

    @@ -256,6 +256,9 @@

  • + @@ -265,6 +268,9 @@ + @@ -283,6 +289,9 @@ + + + + @@ -343,7 +361,7 @@ HeaderFooterContentViews - - - @@ -505,10 +514,7 @@ Section - + + + + + + + @@ -264,6 +267,9 @@ + @@ -282,6 +288,9 @@ + + + + @@ -342,7 +360,7 @@ HeaderFooterContentViews - - - @@ -504,10 +513,7 @@ Section - + + + + + +
    -

    You use the ListAppearance.Sizing struct to control the default measurements within the list: How tall are standard rows, headers, footers, etc.

    -
    public struct ListAppearance.Sizing : Equatable
    +

    You use the TableAppearance.Sizing struct to control the default measurements within the list: How tall are standard rows, headers, footers, etc.

    +
    public struct TableAppearance.Sizing : Equatable
     {
         public var itemHeight : CGFloat
     
    @@ -645,8 +669,8 @@ 

    Highly Customizable

    }
    -

    You can use ListAppearance.Layout to customize the padding of the entire list, how wide the list should be (eg, up to 700px, more than 400px, etc) plus control spacing between items, headers, and footers.

    -
    public struct ListAppearance.Layout : Equatable
    +

    You can use TableAppearance.Layout to customize the padding of the entire list, how wide the list should be (eg, up to 700px, more than 400px, etc) plus control spacing between items, headers, and footers.

    +
    public struct TableAppearance.Layout : Equatable
     {
         public var padding : UIEdgeInsets
         public var width : WidthConstraint
    @@ -1200,7 +1224,7 @@ 
           
         
         
       
    diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/search.json b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/search.json
    index b043357cc..ac6498fa1 100644
    --- a/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/search.json
    +++ b/docs/Listable/docsets/Listable.docset/Contents/Resources/Documents/search.json
    @@ -1 +1 @@
    -{"Typealiases.html#/s:10ListableUI6Headera":{"name":"Header","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI6Footera":{"name":"Footer","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI13HeaderContenta":{"name":"HeaderContent","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI13FooterContenta":{"name":"FooterContent","abstract":"

    Undocumented

    "},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV17CompletionHandlera":{"name":"CompletionHandler","abstract":"

    The completion handler to call after performing the swipe action.

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV7Handlera":{"name":"Handler","abstract":"

    The completion handler called when the action is tapped.

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5titleSSSgvp":{"name":"title","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV15backgroundColorSo7UIColorCSgvp":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5imageSo7UIImageCSgvp":{"name":"image","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV7handleryyySbccvp":{"name":"handler","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5title15backgroundColor5image7handlerACSS_So7UIColorCSo7UIImageCSgyySbcctcfc":{"name":"init(title:backgroundColor:image:handler:)","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV7actionsSayAA0C6ActionVGvp":{"name":"actions","abstract":"

    The actions to display when the cell is swiped.

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC0Sbvp":{"name":"performsFirstActionWithFullSwipe","abstract":"

    Whether the first action is performed automatically with a full swipe.

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV6action027performsFirstActionWithFullC0AcA0cI0V_Sbtcfc":{"name":"init(action:performsFirstActionWithFullSwipe:)","abstract":"

    Undocumented

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV7actions027performsFirstActionWithFullC0ACSayAA0cI0VG_Sbtcfc":{"name":"init(actions:performsFirstActionWithFullSwipe:)","abstract":"

    Undocumented

    ","parent_name":"SwipeActionsConfiguration"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4left12CoreGraphics7CGFloatVvp":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV5right12CoreGraphics7CGFloatVvp":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4zeroACvpZ":{"name":"zero","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4left5rightAC12CoreGraphics7CGFloatV_AHtcfc":{"name":"init(left:right:)","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV7uniformAC12CoreGraphics7CGFloatV_tcfc":{"name":"init(uniform:)","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/Section/Columns.html#/s:10ListableUI7SectionV7ColumnsV5countSivp":{"name":"count","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/Section/Columns.html#/s:10ListableUI7SectionV7ColumnsV7spacing12CoreGraphics7CGFloatVvp":{"name":"spacing","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/Section/Columns.html#/s:10ListableUI7SectionV7ColumnsV3oneAEvpZ":{"name":"one","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/Section/Columns.html#/s:10ListableUI7SectionV7ColumnsV5count7spacingAESi_12CoreGraphics7CGFloatVtcfc":{"name":"init(count:spacing:)","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/Section/Layout.html#/s:10ListableUI7SectionV6LayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/Section/Layout.html#/s:10ListableUI7SectionV6LayoutV011customInterC7Spacing12CoreGraphics7CGFloatVSgvp":{"name":"customInterSectionSpacing","abstract":"

    Overrides the calculated spacing after this section

    ","parent_name":"Layout"},"Structs/Section/Layout.html#/s:10ListableUI7SectionV6LayoutV5width011customInterC7SpacingAeA11CustomWidthO_12CoreGraphics7CGFloatVSgtcfc":{"name":"init(width:customInterSectionSpacing:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/Section.html#/s:10ListableUI7SectionV4infoAA03AnyC4Info_pvp":{"name":"info","abstract":"

    Data backing the identity and updates to the section – for example","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    The layout for the section and all its content.","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV7columnsAC7ColumnsVvp":{"name":"columns","abstract":"

    How columns within the section should be distributed.","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6headerAA15AnyHeaderFooter_pSgvp":{"name":"header","abstract":"

    The header, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6footerAA15AnyHeaderFooter_pSgvp":{"name":"footer","abstract":"

    The footer, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV5itemsSayAA7AnyItem_pGvp":{"name":"items","abstract":"

    The items, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV8contains3anySbShyAA14ContentFiltersOG_tF":{"name":"contains(any:)","abstract":"

    Check if the section contains any of the given types, which you specify via the filters","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_5buildACx_yACzXEtcSHRzlufc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_5buildACx_yACzXEtcAA0C4InfoRzlufc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_6layout7columns6header6footer5itemsACx_AC6LayoutVAC7ColumnsVAA15AnyHeaderFooter_pSgANSayAA0K4Item_pGtcSHRzlufc":{"name":"init(_:layout:columns:header:footer:items:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_6layout7columns6header6footer5itemsACx_AC6LayoutVAC7ColumnsVAA15AnyHeaderFooter_pSgANSayAA0K4Item_pGtcAA0C4InfoRzlufc":{"name":"init(_:layout:columns:header:footer:items:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV3addyyAA7AnyItem_pF":{"name":"add(_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_AA7AnyItem_ptFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_AA4ItemVyxGtAA0E7ContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_xtAA11ItemContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayAA7AnyItem_pGtFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayAA4ItemVyxGGtAA0E7ContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayxGtAA11ItemContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section/Layout.html":{"name":"Layout","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section/Columns.html":{"name":"Columns","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/ScrollPosition/IfAlreadyVisible.html#/s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO9doNothingyA2EmF":{"name":"doNothing","abstract":"

    Do not perform any action if the item is already partially visible.

    ","parent_name":"IfAlreadyVisible"},"Structs/ScrollPosition/IfAlreadyVisible.html#/s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO08scrollToD0yA2EmF":{"name":"scrollToPosition","abstract":"

    Scroll the item to the desired Position, even if it is already partially visible.

    ","parent_name":"IfAlreadyVisible"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O3topyA2EmF":{"name":"top","abstract":"

    Scroll the item to the top of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O8centeredyA2EmF":{"name":"centered","abstract":"

    Scroll the item to the middle of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O6bottomyA2EmF":{"name":"bottom","abstract":"

    Scroll the item to the bottom of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition.html#/s:10ListableUI14ScrollPositionV8position16ifAlreadyVisible6offsetA2C0D0O_AC02IfgH0O12CoreGraphics7CGFloatVtcfc":{"name":"init(position:ifAlreadyVisible:offset:)","abstract":"

    Creates a new scroll position with the provided values.

    ","parent_name":"ScrollPosition"},"Structs/ScrollPosition/Position.html":{"name":"Position","abstract":"

    How the item should be positioned within the list.

    ","parent_name":"ScrollPosition"},"Structs/ScrollPosition/IfAlreadyVisible.html":{"name":"IfAlreadyVisible","abstract":"

    What action should be taken if an item is already partially visible within a list.

    ","parent_name":"ScrollPosition"},"Structs/RefreshControl/Title.html#/s:10ListableUI14RefreshControlV5TitleO6stringyAESScAEmF":{"name":"string(_:)","abstract":"

    Undocumented

    ","parent_name":"Title"},"Structs/RefreshControl/Title.html#/s:10ListableUI14RefreshControlV5TitleO10attributedyAESo18NSAttributedStringCcAEmF":{"name":"attributed(_:)","abstract":"

    Undocumented

    ","parent_name":"Title"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV12isRefreshingSbvp":{"name":"isRefreshing","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV5titleAC5TitleOSgvp":{"name":"title","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV9tintColorSo7UIColorCSgvp":{"name":"tintColor","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV02OnC0a":{"name":"OnRefresh","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV02onC0yycvp":{"name":"onRefresh","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV12isRefreshing5title9tintColor02onC0ACSb_AC5TitleOSgSo7UIColorCSgyyctcfc":{"name":"init(isRefreshing:title:tintColor:onRefresh:)","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl/Title.html":{"name":"Title","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/ItemPreviewAppearance.html#/s:10ListableUI21ItemPreviewAppearanceV7padding15backgroundColorAC12CoreGraphics7CGFloatV_So7UIColorCtcfc":{"name":"init(padding:backgroundColor:)","abstract":"

    Creates a new preview appearance.

    ","parent_name":"ItemPreviewAppearance"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV5width12CoreGraphics7CGFloatVvp":{"name":"width","abstract":"

    The width of the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV5stateAA0C5StateVvp":{"name":"state","abstract":"

    The ItemState to use in the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV10appearanceAA0cD10AppearanceVvp":{"name":"appearance","abstract":"

    The desired appearance of the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV4with5state10appearanceAE12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVtcfc":{"name":"init(with:state:appearance:)","abstract":"

    Creates a new preview with the desired options.

    ","parent_name":"Properties"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV4itemAA03AnyC0_pvp":{"name":"item","abstract":"

    The item being previewed by the preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV10propertiesAC10PropertiesVvp":{"name":"properties","abstract":"

    The properties of the current preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview/Properties.html":{"name":"Properties","abstract":"

    The properties of a preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ":{"name":"previews(for:with:)","abstract":"

    Creates and returns a SwiftUI view that contains individual previews for each of the provided","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_12CoreGraphics7CGFloatVAA0cD10AppearanceVtFZ":{"name":"withAllItemStates(for:width:appearance:)","abstract":"

    Creates and returns a SwiftUI view that contains individual previews for all the possible","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV_5width5state10appearanceAcA03AnyC0_p_12CoreGraphics7CGFloatVAA0C5StateVAA0cD10AppearanceVtcfc":{"name":"init(_:width:state:appearance:)","abstract":"

    Creates a new preview with the provided properties.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV_10propertiesAcA03AnyC0_p_AC10PropertiesVtcfc":{"name":"init(_:properties:)","abstract":"

    Creates a new preview with the provided properties.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"ItemPreview"},"Structs/LocalizedItemCollator/CollatedSection.html#/s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5titleSSvp":{"name":"title","abstract":"

    The title of section – a single letter like A, B, C, D, E, etc.","parent_name":"CollatedSection"},"Structs/LocalizedItemCollator/CollatedSection.html#/s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5itemsSayAA03AnyD0_pGvp":{"name":"items","abstract":"

    The sorted items in the collated sections.

    ","parent_name":"CollatedSection"},"Structs/LocalizedItemCollator.html#/s:10ListableUI21LocalizedItemCollatorV7collate9collation5itemsSayAC15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtFZ":{"name":"collate(collation:items:)","abstract":"

    Collates and returns the set of items into CollatedSections.","parent_name":"LocalizedItemCollator"},"Structs/LocalizedItemCollator.html#/s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ":{"name":"sections(collation:with:_:)","abstract":"

    Collates and returns the set of items into list Sections,","parent_name":"LocalizedItemCollator"},"Structs/LocalizedItemCollator/CollatedSection.html":{"name":"CollatedSection","abstract":"

    The output of the collator, with the collated title and items","parent_name":"LocalizedItemCollator"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV3oldShyAA13AnyIdentifierCGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV3newShyAA13AnyIdentifierCGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV3oldSo6CGRectVvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV3newSo6CGRectVvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV9displayedSayAA7AnyItem_pGvp":{"name":"displayed","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV12endedDisplaySayAA7AnyItem_pGvp":{"name":"endedDisplay","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV10hadChangesSbvp":{"name":"hadChanges","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/DidScroll.html#/s:10ListableUI17ListStateObserverV9DidScrollV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"DidScroll"},"Structs/ListStateObserver/DidScroll.html#/s:10ListableUI17ListStateObserverV9DidScrollV12positionInfoAA0cg8PositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"DidScroll"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates and optionally allows you to configure an observer.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV11OnDidScrolla":{"name":"OnDidScroll","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV11onDidScrollyyyAC0gH0VcF":{"name":"onDidScroll(_:)","abstract":"

    Registers a callback which will be called when the list view is scrolled, or is","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV16OnContentUpdateda":{"name":"OnContentUpdated","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV16onContentUpdatedyyyAC0gH0VcF":{"name":"onContentUpdated(_:)","abstract":"

    Registers a callback which will be called when the list view’s content is updated","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV19OnVisibilityChangeda":{"name":"OnVisibilityChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV19onVisibilityChangedyyyAC0gH0VcF":{"name":"onVisibilityChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s content is changed – eg through","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV14OnFrameChangeda":{"name":"OnFrameChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV14onFrameChangedyyyAC0gH0VcF":{"name":"onFrameChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s frame is changed.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV18OnSelectionChangeda":{"name":"OnSelectionChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV18onSelectionChangedyyyAC0gH0VcF":{"name":"onSelectionChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s selected items are changed by the user.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/DidScroll.html":{"name":"DidScroll","abstract":"

    Parameters available for OnDidScroll callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/ContentUpdated.html":{"name":"ContentUpdated","abstract":"

    Parameters available for OnContentUpdated callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/VisibilityChanged.html":{"name":"VisibilityChanged","abstract":"

    Parameters available for OnVisibilityChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/FrameChanged.html":{"name":"FrameChanged","abstract":"

    Parameters available for OnFrameChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/SelectionChanged.html":{"name":"SelectionChanged","abstract":"

    Parameters available for OnSelectionChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV12visibleItemsShyAA13AnyIdentifierCGvp":{"name":"visibleItems","abstract":"

    Which items within the list are currently visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV18isFirstItemVisibleSbvp":{"name":"isFirstItemVisible","abstract":"

    If the first item list is partially visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV17isLastItemVisibleSbvp":{"name":"isLastItemVisible","abstract":"

    If the last item list is partially visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV19visibleContentEdges017includingSafeAreaI0So10UIRectEdgeVAG_tF":{"name":"visibleContentEdges(includingSafeAreaEdges:)","abstract":"

    Used to retrieve the visible content edges for the list’s content.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV10scrollView12visibleItems18isFirstItemVisible0k4LastmN0ACSo08UIScrollH0C_ShyAA13AnyIdentifierCGS2btcfc":{"name":"init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)","abstract":"

    Creates a ListScrollPositionInfo for the provided scroll view.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV15animatesChangesSbvp":{"name":"animatesChanges","abstract":"

    If the changes applied should be animated or not.","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7contentAA7ContentVvp":{"name":"content","abstract":"

    The content displayed by the list.","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV11environmentAA0C11EnvironmentVvp":{"name":"environment","abstract":"

    The environment associated with the List.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV6layoutAA17LayoutDescriptionVvp":{"name":"layout","abstract":"

    The layout type to use with the list. Defaults to .list(), aka a list","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    The appearance to use with the list.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV21scrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"scrollIndicatorInsets","abstract":"

    The scroll insets to apply to the list view.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    The various behavior options to apply to the list, which affect how the user","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV13stateObserverAA0c5StateF0Vvp":{"name":"stateObserver","abstract":"

    The state reader to use with your list. A ListStateObserver","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7actionsAA0C7ActionsCSgvp":{"name":"actions","abstract":"

    The actions instance to use to control the list, eg to scroll to a given","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV16autoScrollActionAA04AutofG0Ovp":{"name":"autoScrollAction","abstract":"

    The auto scroll action to apply to the list. This allows you to","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV23accessibilityIdentifierSSSgvp":{"name":"accessibilityIdentifier","abstract":"

    The accessibility identifier assigned to the inner UICollectionView.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    The debugging identifier assigned to the list. Used for os_signpost integration","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7default4withACyACzXE_tFZ":{"name":"default(with:)","abstract":"

    An instance of ListProperties with sensible default values.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV15animatesChanges6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction23accessibilityIdentifier09debuggingQ05buildACSb_AA17LayoutDescriptionVAA10AppearanceVSo06UIEdgeK0VAA8BehaviorVAA04AutonO0OSSSgAWyACzXEtcfc":{"name":"init(animatesChanges:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:accessibilityIdentifier:debuggingIdentifier:build:)","abstract":"

    Create a new instance of ListProperties with the provided values.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV6modify5usingyyACzXE_tF":{"name":"modify(using:)","abstract":"

    Updates the ListProperties object with the changes in the provided builder.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV8modified5usingACyACzXE_tF":{"name":"modified(using:)","abstract":"

    Creates a new ListProperties object modified by the changes in the provided builder.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV3addyyAA7SectionVF":{"name":"add(_:)","abstract":"

    Adds a new section to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV2peoiyyACz_AA7SectionVtFZ":{"name":"+=(_:_:)","abstract":"

    Adds a new section to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV2peoiyyACz_SayAA7SectionVGtFZ":{"name":"+=(_:_:)","abstract":"

    Adds a list of new sections to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV14callAsFunction_5buildyx_yAA7SectionVzXEtSHRzlF":{"name":"callAsFunction(_:build:)","abstract":"

    Allows streamlined creation of sections when building a list.

    ","parent_name":"ListProperties"},"Structs/ListEnvironment.html#/s:10ListableUI15ListEnvironmentV5emptyACvpZ":{"name":"empty","abstract":"

    A default “empty” environment, with no values overridden.","parent_name":"ListEnvironment"},"Structs/ListEnvironment.html#/s:10ListableUI15ListEnvironmentVy5ValueQzxmcAA0cD3KeyRzluip":{"name":"subscript(_:)","abstract":"

    Gets or sets an environment value by its key.

    ","parent_name":"ListEnvironment"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    The direction the paging layout should occur in. Defaults to vertical.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp":{"name":"showsScrollIndicators","abstract":"

    If scroll indicators should be visible along the scrollable axis.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV10itemInsetsSo06UIEdgeF0Vvp":{"name":"itemInsets","abstract":"

    How far each item in the list should be inset from the edges of the view.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV9direction21showsScrollIndicators10itemInsetsAcA15LayoutDirectionO_SbSo06UIEdgeJ0Vtcfc":{"name":"init(direction:showsScrollIndicators:itemInsets:)","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV5width12CoreGraphics7CGFloatVvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV6height12CoreGraphics7CGFloatVvp":{"name":"height","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV7rotatesSbvp":{"name":"rotates","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV5width6height7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc":{"name":"init(width:height:rotates:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV12CGPointValue3forSo6CGSizeVAA0D9DirectionO_tF":{"name":"CGPointValue(for:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1x12CoreGraphics7CGFloatVvp":{"name":"x","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1y12CoreGraphics7CGFloatVvp":{"name":"y","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV7rotatesSbvp":{"name":"rotates","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1x1y7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc":{"name":"init(x:y:rotates:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV12CGPointValue3forSo0F0VAA0D9DirectionO_tF":{"name":"CGPointValue(for:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO9automaticyA2EmF":{"name":"automatic","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2EmF":{"name":"scrollableAxes","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO5neveryA2EmF":{"name":"never","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO6alwaysyA2EmF":{"name":"always","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabledSbvp":{"name":"isPagingEnabled","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30contentInsetAdjustmentBehaviorAC07ContentijK0Ovp":{"name":"contentInsetAdjustmentBehavior","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV20allowsBounceVerticalSbvp":{"name":"allowsBounceVertical","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV22allowsBounceHorizontalSbvp":{"name":"allowsBounceHorizontal","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV016allowsHorizontalE9IndicatorSbvp":{"name":"allowsHorizontalScrollIndicator","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV014allowsVerticalE9IndicatorSbvp":{"name":"allowsVerticalScrollIndicator","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabled30contentInsetAdjustmentBehavior20allowsBounceVertical0oP10Horizontal0oqE9Indicator0oreS0ACSb_AC07ContentlmN0OS4btcfc":{"name":"init(isPagingEnabled:contentInsetAdjustmentBehavior:allowsBounceVertical:allowsBounceHorizontal:allowsVerticalScrollIndicator:allowsHorizontalScrollIndicator:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html":{"name":"ContentInsetAdjustmentBehavior","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutDefaults.html#/s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAA04ItemghiJ0Vvp":{"name":"itemInsertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"ListLayoutDefaults"},"Structs/ListLayoutDefaults.html#/s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAcA04ItemghiJ0V_tcfc":{"name":"init(itemInsertAndRemoveAnimations:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutDefaults"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV7SectionV":{"name":"Section","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV13SupplementaryV":{"name":"Supplementary","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV4ItemV":{"name":"Item","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp":{"name":"padding","abstract":"

    The padding to place around the outside of the content of the list.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV5widthAA15WidthConstraintOvp":{"name":"width","abstract":"

    The width of the content of the list, which can be optionally constrained.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV27headerToFirstSectionSpacing12CoreGraphics7CGFloatVvp":{"name":"headerToFirstSectionSpacing","abstract":"

    The spacing between the list header and the first section.","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithNoFooter","abstract":"

    The spacing to apply between sections, if the previous section has no footer.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithFooter","abstract":"

    The spacing to apply between sections, if the previous section has a footer.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderBottomSpacing","abstract":"

    The spacing to apply below a section header, before its items.","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV11itemSpacing12CoreGraphics7CGFloatVvp":{"name":"itemSpacing","abstract":"

    The spacing between individual items within a section in a list.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"itemToSectionFooterSpacing","abstract":"

    The spacing between the last item in the section and the footer.","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV26lastSectionToFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"lastSectionToFooterSpacing","abstract":"

    The spacing between the last section and the footer of the list.","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV7padding5width27headerToFirstSectionSpacing05interkL12WithNoFooter0mklnP0019sectionHeaderBottomL004itemL00tikpL004lastkipL0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA6Utcfc":{"name":"init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)","abstract":"

    Creates a new Layout with the provided options.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Easily mutate the Layout in place.

    ","parent_name":"Layout"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV10itemHeight12CoreGraphics7CGFloatVvp":{"name":"itemHeight","abstract":"

    The default height for items in a list.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderHeight","abstract":"

    The default height for section headers in a list.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp":{"name":"sectionFooterHeight","abstract":"

    The default height for section footer in a list.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"listHeaderHeight","abstract":"

    The default height for the list’s header.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp":{"name":"listFooterHeight","abstract":"

    The default height for the list’s footer.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp":{"name":"overscrollFooterHeight","abstract":"

    The default height for the list’s overscroll footer.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV26itemPositionGroupingHeight12CoreGraphics7CGFloatVvp":{"name":"itemPositionGroupingHeight","abstract":"

    When providing the ItemPosition for items in a list, specifies the max spacing","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV10itemHeight013sectionHeaderG00h6FooterG004listiG00kjG0010overscrolljG00f16PositionGroupingG0AE12CoreGraphics7CGFloatV_A6Otcfc":{"name":"init(itemHeight:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:itemPositionGroupingHeight:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV6sizingAC6SizingVvp":{"name":"sizing","abstract":"

    Default sizing attributes for content in the list.

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    Layout attributes for content in the list.

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc":{"name":"init(stickySectionHeaders:sizing:layout:)","abstract":"

    Creates a new ListAppearance object.

    ","parent_name":"ListAppearance"},"Structs/ListAppearance/Sizing.html":{"name":"Sizing","abstract":"

    Sizing options for the list.

    ","parent_name":"ListAppearance"},"Structs/ListAppearance/Layout.html":{"name":"Layout","abstract":"

    Layout options for the list.

    ","parent_name":"ListAppearance"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp":{"name":"padding","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV5widthAA15WidthConstraintOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithNoFooter","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithFooter","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderBottomSpacing","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"itemToSectionFooterSpacing","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV7padding5width31interSectionSpacingWithNoFooter0hijkM0019sectionHeaderBottomJ006itemToimJ0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA3Rtcfc":{"name":"init(padding:width:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemToSectionFooterSpacing:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Sizing/ItemSize.html#/s:10ListableUI14GridAppearanceV6SizingV8ItemSizeO5fixedyAGSo6CGSizeVcAGmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"ItemSize"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV8itemSizeAE04ItemG0Ovp":{"name":"itemSize","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing/ItemSize.html":{"name":"ItemSize","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp":{"name":"sectionFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"listHeaderHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp":{"name":"listFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp":{"name":"overscrollFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV8itemSize19sectionHeaderHeight0h6FooterJ004listiJ00lkJ0010overscrollkJ0A2E04ItemG0O_12CoreGraphics7CGFloatVA4Ptcfc":{"name":"init(itemSize:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV6sizingAC6SizingVvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc":{"name":"init(stickySectionHeaders:sizing:layout:)","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/Sizing.html":{"name":"Sizing","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/Layout.html":{"name":"Layout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzctcAA04ListC0Rzlufc":{"name":"init(layoutType:appearance:)","abstract":"

    Creates a new layout description for the provided layout type, with the provided optional layout configuration.

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV17grid_experimentalyACyAA14GridAppearanceVzcFZ":{"name":"grid_experimental(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV4listyACyAA14ListAppearanceVzcFZ":{"name":"list(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV5pagedyACyAA15PagedAppearanceVzcFZ":{"name":"paged(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV11fromSectionAA0F0Vvp":{"name":"fromSection","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV13fromIndexPath10Foundation0fG0Vvp":{"name":"fromIndexPath","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV9toSectionAA0F0Vvp":{"name":"toSection","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV11toIndexPath10Foundation0fG0Vvp":{"name":"toIndexPath","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Sections.html#/s:10ListableUI10ReorderingV8SectionsO4sameyA2EmF":{"name":"same","abstract":"

    Undocumented

    ","parent_name":"Sections"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV8sectionsAC8SectionsOvp":{"name":"sections","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10CanReordera":{"name":"CanReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10canReorderSbAC6ResultVcSgvp":{"name":"canReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10DidReordera":{"name":"DidReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10didReorderyyAC6ResultVcvp":{"name":"didReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV8sections10canReorder03didF0A2C8SectionsO_SbAC6ResultVcSgyAJctcfc":{"name":"init(sections:canReorder:didReorder:)","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering/Sections.html":{"name":"Sections","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering/Result.html":{"name":"Result","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV10isSelected0E11HighlightedACSb_Sbtcfc":{"name":"init(isSelected:isHighlighted:)","abstract":"

    Undocumented

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV4cellACSo20UICollectionViewCellC_tcfc":{"name":"init(cell:)","abstract":"

    Undocumented

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV10isSelectedSbvp":{"name":"isSelected","abstract":"

    If the item is currently selected.

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV13isHighlightedSbvp":{"name":"isHighlighted","abstract":"

    If the item is currently highlighted.

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV8isActiveSbvp":{"name":"isActive","abstract":"

    If the item is either selected or highlighted.

    ","parent_name":"ItemState"},"Structs/ItemLayout.html#/s:10ListableUI10ItemLayoutV11itemSpacing12CoreGraphics7CGFloatVSgvp":{"name":"itemSpacing","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/ItemLayout.html#/s:10ListableUI10ItemLayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVSgvp":{"name":"itemToSectionFooterSpacing","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/ItemLayout.html#/s:10ListableUI10ItemLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/ItemLayout.html#/s:10ListableUI10ItemLayoutV11itemSpacing0e15ToSectionFooterF05widthAC12CoreGraphics7CGFloatVSg_AjA11CustomWidthOtcfc":{"name":"init(itemSpacing:itemToSectionFooterSpacing:width:)","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6boundsSo6CGRectVvp":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6centerSo7CGPointVvp":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV9transformSo17CGAffineTransformVvp":{"name":"transform","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV11transform3DSo13CATransform3DVvp":{"name":"transform3D","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV5alpha12CoreGraphics7CGFloatVvp":{"name":"alpha","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6zIndexSivp":{"name":"zIndex","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV5frameSo6CGRectVvp":{"name":"frame","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV7Preparea":{"name":"Prepare","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV02onD0yyAC10AttributesVzcvp":{"name":"onInsert","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV9onRemovalyyAC10AttributesVzcvp":{"name":"onRemoval","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV02onD00H7RemovalACyAC10AttributesVzc_yAGzctcfc":{"name":"init(onInsert:onRemoval:)","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10attributesACyAC10AttributesVzc_tcfc":{"name":"init(attributes:)","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html":{"name":"Attributes","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV4fadeACvpZ":{"name":"fade","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV5rightACvpZ":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV4leftACvpZ":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV3topACvpZ":{"name":"top","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV6bottomACvpZ":{"name":"bottom","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV9scaleDownACvpZ":{"name":"scaleDown","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV7scaleUpACvpZ":{"name":"scaleUp","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV5stateAA0D5StateVvp":{"name":"state","abstract":"

    The state of the Item currently displaying the content. Is it highlighted, selected, etc.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV8positionAA0D8PositionOvp":{"name":"position","abstract":"

    The position of the item within its section.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV10reorderingAA17ReorderingActionsCvp":{"name":"reordering","abstract":"

    Provides access to actions to handle re-ordering the content within the list.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV11environmentAA15ListEnvironmentVvp":{"name":"environment","abstract":"

    The environment of the containing list.","parent_name":"ApplyItemContentInfo"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV7content0D4ViewQzvp":{"name":"content","abstract":"

    The content view of the content.

    ","parent_name":"ItemContentViews"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV10background14BackgroundViewQzvp":{"name":"background","abstract":"

    The background view of the content.

    ","parent_name":"ItemContentViews"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV18selectedBackground08SelectedG4ViewQzvp":{"name":"selectedBackground","abstract":"

    The selected background view of the content.","parent_name":"ItemContentViews"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6sizingAA6SizingOSgvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6layoutAA0D6LayoutVSgvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV14selectionStyleAA0d9SelectionG0OSgvp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV25insertAndRemoveAnimationsAA0d6InsertghI0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV12swipeActionsAA05SwipeG13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6sizing6layout14selectionStyle25insertAndRemoveAnimations12swipeActionsACyxGAA6SizingOSg_AA0D6LayoutVSgAA0d9SelectionI0OSgAA0d6InsertklM0VSgAA05SwipeO13ConfigurationVSgtcfc":{"name":"init(sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:)","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/HeaderFooterLayout.html#/s:10ListableUI18HeaderFooterLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/HeaderFooterLayout.html#/s:10ListableUI18HeaderFooterLayoutV5widthAcA11CustomWidthO_tcfc":{"name":"init(width:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV7content0E4ViewQzvp":{"name":"content","abstract":"

    The content view of the content.

    ","parent_name":"HeaderFooterContentViews"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV10background14BackgroundViewQzvp":{"name":"background","abstract":"

    The background view of the content.

    ","parent_name":"HeaderFooterContentViews"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV7pressed21PressedBackgroundViewQzvp":{"name":"pressed","abstract":"

    The background view of the content that’s displayed while a press is active.

    ","parent_name":"HeaderFooterContentViews"},"Structs/ApplyHeaderFooterContentInfo.html#/s:10ListableUI28ApplyHeaderFooterContentInfoV11environmentAA15ListEnvironmentVvp":{"name":"environment","abstract":"

    The environment of the containing list.","parent_name":"ApplyHeaderFooterContentInfo"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV7contentxvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV6layoutAA0cD6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5OnTapa":{"name":"OnTap","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5onTapyxcSgvp":{"name":"onTap","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV_5buildACyxGx_yAEzXEtcfc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV_6sizing6layout5onTapACyxGx_AA6SizingOAA0cD6LayoutVyxcSgtcfc":{"name":"init(_:sizing:layout:onTap:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0jcD11ContentInfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV15anyIsEquivalent2toSbAA03AnycD0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV015newPresentationcD5State24performsContentCallbacksypSb_tF":{"name":"newPresentationHeaderFooterState(performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/EmbeddedList/Sizing.html#/s:10ListableUI12EmbeddedListV6SizingO7defaultyA2EmF":{"name":"default","abstract":"

    Falls back to the default sizing of Items in the list view.

    ","parent_name":"Sizing"},"Structs/EmbeddedList/Sizing.html#/s:10ListableUI12EmbeddedListV6SizingO5fixedyAE12CoreGraphics7CGFloatV_AItcAEmF":{"name":"fixed(width:height:)","abstract":"

    A fixed size item with the given width or height.

    ","parent_name":"Sizing"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV10propertiesAA0D10PropertiesVvp":{"name":"properties","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV17contentIdentifiers11AnyHashableVvp":{"name":"contentIdentifier","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV10identifier5buildACx_yAA0D10PropertiesVzXEtcSHRzlufc":{"name":"init(identifier:build:)","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP0D4ViewQa":{"name":"ContentView","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp":{"name":"identifier","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF":{"name":"apply(to:for:with:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList/Sizing.html":{"name":"Sizing","abstract":"

    How you specify sizing for an embedded list. The surface area","parent_name":"EmbeddedList"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV3oldACyxGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV3newACyxGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV3oldACyxGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV3newACyxGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnRemove.html#/s:10ListableUI4ItemV8OnRemoveV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnRemove"},"Structs/Item/OnRemove.html#/s:10ListableUI4ItemV8OnRemoveV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnRemove"},"Structs/Item/OnInsert.html#/s:10ListableUI4ItemV8OnInsertV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnInsert"},"Structs/Item/OnInsert.html#/s:10ListableUI4ItemV8OnInsertV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnInsert"},"Structs/Item/OnDeselect.html#/s:10ListableUI4ItemV10OnDeselectV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnDeselect"},"Structs/Item/OnDeselect.html#/s:10ListableUI4ItemV10OnDeselectV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnDeselect"},"Structs/Item/OnSelect.html#/s:10ListableUI4ItemV8OnSelectV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnSelect"},"Structs/Item/OnSelect.html#/s:10ListableUI4ItemV8OnSelectV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnSelect"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV07isFirsteF0Sbvp":{"name":"isFirstEndDisplay","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV07isFirstE0Sbvp":{"name":"isFirstDisplay","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item.html#/s:10ListableUI4ItemV10identifierAA13AnyIdentifierCvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV7contentxvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6layoutAA0C6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV14selectionStyleAA0c9SelectionE0Ovp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV25insertAndRemoveAnimationsAA0c6InsertefG0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV12swipeActionsAA05SwipeE13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10reorderingAA10ReorderingVSgvp":{"name":"reordering","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV9onDisplayyAC02OnE0Vyx_GcSgvp":{"name":"onDisplay","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV12onEndDisplayyAC02OneF0Vyx_GcSgvp":{"name":"onEndDisplay","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onSelectyAC02OnE0Vyx_GcSgvp":{"name":"onSelect","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10onDeselectyAC02OnE0Vyx_GcSgvp":{"name":"onDeselect","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onInsertyAC02OnE0Vyx_GcSgvp":{"name":"onInsert","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onRemoveyAC02OnE0Vyx_GcSgvp":{"name":"onRemove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6onMoveyAC02OnE0Vyx_GcSgvp":{"name":"onMove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onUpdateyAC02OnE0Vyx_GcSgvp":{"name":"onUpdate","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV_5buildACyxGx_yAEzXEtcfc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV_6sizing6layout14selectionStyle25insertAndRemoveAnimations12swipeActions10reordering9onDisplay0o3EndP00O6Select0O8Deselect0O6Insert0oJ00O4Move0O6UpdateACyxGx_AA6SizingOSgAA0C6LayoutVSgAA0c9SelectionG0OSgAA0ctijK0VSgAA05SwipeM13ConfigurationVSgAA10ReorderingVSgyAC02OnP0Vyx_GcSgyAC02OnqP0Vyx_GcSgyAC02OnR0Vyx_GcSgyAC02OnS0Vyx_GcSgyAC02OnT0Vyx_GcSgyAC02OnJ0Vyx_GcSgyAC02OnU0Vyx_GcSgyAC02OnV0Vyx_GcSgtcfc":{"name":"init(_:sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10anyContentypvp":{"name":"anyContent","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV15anyIsEquivalent2toSbAA03AnyC0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV11anyWasMoved10comparedToSbAA03AnyC0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV015newPresentationC5State4with15updateCallbacks015performsContentI0ypAA0cF12DependenciesV_AA06UpdateI0CSbtF":{"name":"newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnDisplay.html":{"name":"OnDisplay","abstract":"

    Value passed to the onDisplay callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnEndDisplay.html":{"name":"OnEndDisplay","abstract":"

    Value passed to the onEndDisplay callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnSelect.html":{"name":"OnSelect","abstract":"

    Value passed to the onSelect callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnDeselect.html":{"name":"OnDeselect","abstract":"

    Value passed to the onDeselect callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnInsert.html":{"name":"OnInsert","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnRemove.html":{"name":"OnRemove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnMove.html":{"name":"OnMove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnUpdate.html":{"name":"OnUpdate","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemVA2A12EmbeddedListVRszrlE4list_6sizing5buildACyAEGqd___AE6SizingOyAA0E10PropertiesVzXEtSHRd__lFZ":{"name":"list(_:sizing:build:)","abstract":"

    Creates an Item which can be used to embed a list inside another list,","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemVA2A019LocalizedCollatableC7ContentRzrlE15collationStringSSvp":{"name":"collationString","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Content.html#/s:10ListableUI7ContentV10identifiers11AnyHashableVSgvp":{"name":"identifier","abstract":"

    The identifier for the content, defaults to nil.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14refreshControlAA07RefreshE0VSgvp":{"name":"refreshControl","abstract":"

    The refresh control, if any, associated with the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV6headerAA15AnyHeaderFooter_pSgvp":{"name":"header","abstract":"

    The header for the list, usually displayed before all other content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV6footerAA15AnyHeaderFooter_pSgvp":{"name":"footer","abstract":"

    The footer for the list, usually displayed after all other content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV16overscrollFooterAA09AnyHeaderE0_pSgvp":{"name":"overscrollFooter","abstract":"

    The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame,","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8sectionsSayAA7SectionVGvp":{"name":"sections","abstract":"

    All sections in the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV16nonEmptySectionsSayAA7SectionVGvp":{"name":"nonEmptySections","abstract":"

    Any sections that have a non-zero number of items.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV9itemCountSivp":{"name":"itemCount","abstract":"

    The total number of items in all of the sections in the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8contains3anySbShyAA0C7FiltersOG_tF":{"name":"contains(any:)","abstract":"

    Check if the content contains any of the given types, which you specify via the filters","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV4withACyACzXE_tcfc":{"name":"init(with:)","abstract":"

    Creates a new instance, configured as needed via the provided builder block.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV10identifier14refreshControl6header6footer16overscrollFooter8sectionsACs11AnyHashableVSg_AA07RefreshF0VSgAA0l6HeaderJ0_pSgA2QSayAA7SectionVGtcfc":{"name":"init(identifier:refreshControl:header:footer:overscrollFooter:sections:)","abstract":"

    Creates a new instance with the provided parameters.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV9firstItemAA03AnyE0_pSgvp":{"name":"firstItem","abstract":"

    The first Item in the content. Returns nil if there is no content in any section.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8lastItemAA03AnyE0_pSgvp":{"name":"lastItem","abstract":"

    The last Item in the content. Returns nil if there is no content in any section.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns the Item at the given IndexPath.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14firstIndexPath3for10Foundation0eF0VSgAA13AnyIdentifierC_tF":{"name":"firstIndexPath(for:)","abstract":"

    Returns the first IndexPath for the contained Item with the given AnyIdentifier,","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV13lastIndexPath10Foundation0eF0VSgyF":{"name":"lastIndexPath()","abstract":"

    Returns the IndexPath of the last Item in the content.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV11removeEmptyyyF":{"name":"removeEmpty()","abstract":"

    Removes all Sections that do not contain any Items.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV3addyyAA7SectionVF":{"name":"add(_:)","abstract":"

    Appends a Section to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV2peoiyyACz_AA7SectionVtFZ":{"name":"+=(_:_:)","abstract":"

    Appends a Section to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV2peoiyyACz_SayAA7SectionVGtFZ":{"name":"+=(_:_:)","abstract":"

    Appends a list of Sections to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14callAsFunction_5buildyx_yAA7SectionVzXEtSHRzlF":{"name":"callAsFunction(_:build:)","abstract":"

    Allows streamlined creation of sections when building a list, leveraging Swift’s callAsFunction","parent_name":"Content"},"Structs/Color.html#/s:10ListableUI5ColorV12wrappedValueSo7UIColorCvp":{"name":"wrappedValue","abstract":"

    The underlying color value.

    ","parent_name":"Color"},"Structs/Color.html#/s:10ListableUI5ColorVyACSo7UIColorCcfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"Color"},"Structs/Color.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Color"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO3topyA2GmF":{"name":"top","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6centeryA2GmF":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6bottomyA2GmF":{"name":"bottom","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV12alwaysBounceSbvp":{"name":"alwaysBounce","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV9alignmentAE9AlignmentOvp":{"name":"alignment","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV12alwaysBounce9alignmentAESb_AE9AlignmentOtcfc":{"name":"init(alwaysBounce:alignment:)","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow/Alignment.html":{"name":"Alignment","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF":{"name":"none","abstract":"

    The list view does not allow any selections.

    ","parent_name":"SelectionMode"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO6singleyAESb_tcAEmF":{"name":"single(clearsSelectionOnViewWillAppear:)","abstract":"

    The list view allows single selections. When an item is selected, the previously selected item (if any)","parent_name":"SelectionMode"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF":{"name":"multiple","abstract":"

    The list view allows multiple selections. It is your responsibility to update the content","parent_name":"SelectionMode"},"Structs/Behavior/ScrollsToTop.html#/s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF":{"name":"disabled","abstract":"

    No action is performed when the user taps on the status bar.

    ","parent_name":"ScrollsToTop"},"Structs/Behavior/ScrollsToTop.html#/s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF":{"name":"enabled","abstract":"

    When the user taps on the status bar, scroll to the top of the list.

    ","parent_name":"ScrollsToTop"},"Structs/Behavior/KeyboardAdjustmentMode.html#/s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF":{"name":"none","abstract":"

    The contentInset of the list is not adjusted when the keyboard appears or disappears.

    ","parent_name":"KeyboardAdjustmentMode"},"Structs/Behavior/KeyboardAdjustmentMode.html#/s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF":{"name":"adjustsWhenVisible","abstract":"

    The contentInset of the list is adjusted when the keyboard appears or disappears.

    ","parent_name":"KeyboardAdjustmentMode"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp":{"name":"keyboardDismissMode","abstract":"

    How the keyboard should be dismissed (if at all) based on scrolling of the list view.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp":{"name":"keyboardAdjustmentMode","abstract":"

    How to adjust the contentInset of the list when the keyboard visibility changes.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp":{"name":"scrollsToTop","abstract":"

    How the list should react when the user taps the application status bar.","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp":{"name":"selectionMode","abstract":"

    How the list should respond to selection attempts.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp":{"name":"underflow","abstract":"

    How the list should behave when its content takes up less space than is available in the list view.","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp":{"name":"canCancelContentTouches","abstract":"

    A Boolean value that controls whether touches in the content view always lead to tracking.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV20delaysContentTouchesSbvp":{"name":"delaysContentTouches","abstract":"

    A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV15isPagingEnabledSbvp":{"name":"isPagingEnabled","abstract":"

    Is paging enabled on the underlying scroll view.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP015isPagingEnabledACSo020UIScrollViewKeyboardeF0V_AC0wgF0OAC07ScrollsiJ0OAC09SelectionF0OAC9UnderflowVS3btcfc":{"name":"init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:)","abstract":"

    Creates a new Behavior based on the provided parameters.

    ","parent_name":"Behavior"},"Structs/Behavior/KeyboardAdjustmentMode.html":{"name":"KeyboardAdjustmentMode","abstract":"

    How to adjust the contentInset of the list when the keyboard visibility changes.

    ","parent_name":"Behavior"},"Structs/Behavior/ScrollsToTop.html":{"name":"ScrollsToTop","abstract":"

    How to react when the user taps on the status bar of the application.

    ","parent_name":"Behavior"},"Structs/Behavior/SelectionMode.html":{"name":"SelectionMode","abstract":"

    The selection mode of the list view, which controls how many items (if any) can be selected at once.

    ","parent_name":"Behavior"},"Structs/Behavior/Underflow.html":{"name":"Underflow","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV15backgroundColorSo7UIColorCvp":{"name":"backgroundColor","abstract":"

    The background color for the list.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV21showsScrollIndicatorsSbvp":{"name":"showsScrollIndicators","abstract":"

    If the list should display its scroll indicators.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV15backgroundColor21showsScrollIndicators9configureACSo7UIColorC_SbyACzXEtcfc":{"name":"init(backgroundColor:showsScrollIndicators:configure:)","abstract":"

    Creates a new appearance object with the provided options.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV22defaultBackgroundColorSo7UIColorCvpZ":{"name":"defaultBackgroundColor","abstract":"

    The default background color for the Appearance.

    ","parent_name":"Appearance"},"Structs/Appearance.html":{"name":"Appearance","abstract":"

    Contains all the properties which affect the appearance of all possible kinds of list layouts.

    "},"Structs/Behavior.html":{"name":"Behavior","abstract":"

    Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior"},"Structs/Color.html":{"name":"Color","abstract":"

    A color wrapper which provides equatability for"},"Structs/Content.html":{"name":"Content","abstract":"

    Undocumented

    "},"Structs/Item.html":{"name":"Item","abstract":"

    Undocumented

    "},"Structs/EmbeddedList.html":{"name":"EmbeddedList","abstract":"

    Describes item content which can be used to embed a list inside another list,"},"Structs/HeaderFooter.html":{"name":"HeaderFooter","abstract":"

    Undocumented

    "},"Structs/ApplyHeaderFooterContentInfo.html":{"name":"ApplyHeaderFooterContentInfo","abstract":"

    Information about the current state of the content, which is passed to apply(to:for:with:)"},"Structs/HeaderFooterContentViews.html":{"name":"HeaderFooterContentViews","abstract":"

    The views owned by the item content, passed to the apply(to:) method to theme and provide content.

    "},"Structs/HeaderFooterLayout.html":{"name":"HeaderFooterLayout","abstract":"

    Undocumented

    "},"Structs.html#/s:10ListableUI21ItemStateDependenciesV":{"name":"ItemStateDependencies","abstract":"

    Undocumented

    "},"Structs/DefaultItemProperties.html":{"name":"DefaultItemProperties","abstract":"

    Allows specifying default properties to apply to an item when it is initialized,"},"Structs/ItemContentViews.html":{"name":"ItemContentViews","abstract":"

    The views owned by the item content, passed to the apply(to:) method to theme and provide content.

    "},"Structs/ApplyItemContentInfo.html":{"name":"ApplyItemContentInfo","abstract":"

    Information about the current state of the content, which is passed to apply(to:for:with:)"},"Structs/ItemInsertAndRemoveAnimations.html":{"name":"ItemInsertAndRemoveAnimations","abstract":"

    Undocumented

    "},"Structs/ItemLayout.html":{"name":"ItemLayout","abstract":"

    Undocumented

    "},"Structs/ItemState.html":{"name":"ItemState","abstract":"

    Undocumented

    "},"Structs/Reordering.html":{"name":"Reordering","abstract":"

    Undocumented

    "},"Structs/LayoutDescription.html":{"name":"LayoutDescription","abstract":"

    A LayoutDescription, well, describes the type of and properties of a layout to apply to a list view.

    "},"Structs/GridAppearance.html":{"name":"GridAppearance","abstract":"

    Undocumented

    "},"Structs/ListAppearance.html":{"name":"ListAppearance","abstract":"

    ListAppearance defines the appearance and layout attribute for list layouts within a Listable list.

    "},"Structs/ListLayoutAttributes.html":{"name":"ListLayoutAttributes","abstract":"

    Undocumented

    "},"Structs/ListLayoutDefaults.html":{"name":"ListLayoutDefaults","abstract":"

    Undocumented

    "},"Structs/ListLayoutScrollViewProperties.html":{"name":"ListLayoutScrollViewProperties","abstract":"

    Undocumented

    "},"Structs/ListLayoutPoint.html":{"name":"ListLayoutPoint","abstract":"

    Undocumented

    "},"Structs/ListLayoutSize.html":{"name":"ListLayoutSize","abstract":"

    Undocumented

    "},"Structs/PagedAppearance.html":{"name":"PagedAppearance","abstract":"

    Describes the available appearance configuration options for a paged list layout."},"Structs/ListEnvironment.html":{"name":"ListEnvironment","abstract":"

    An environment of keys and values that are passed to every ItemContent and HeaderFooter"},"Structs/ListProperties.html":{"name":"ListProperties","abstract":"

    The ListProperties object describes all of the given values needed to configure"},"Structs/ListScrollPositionInfo.html":{"name":"ListScrollPositionInfo","abstract":"

    Information about the current scroll position of a list,"},"Structs/ListStateObserver.html":{"name":"ListStateObserver","abstract":"

    Allows reading state and events based on state changes within the list view."},"Structs/LocalizedItemCollator.html":{"name":"LocalizedItemCollator","abstract":"

    If you’re looking for the equivalent of UILocalizedIndexedCollation for lists,"},"Structs/ItemPreview.html":{"name":"ItemPreview","abstract":"

    A SwiftUI view that you can use to preview your Item or ItemContent"},"Structs/ItemPreviewAppearance.html":{"name":"ItemPreviewAppearance","abstract":"

    The appearance options for a preview item.

    "},"Structs/RefreshControl.html":{"name":"RefreshControl","abstract":"

    Undocumented

    "},"Structs/ScrollPosition.html":{"name":"ScrollPosition","abstract":"

    Specifies how to position an item in a list when requesting the list scrolls to it.

    "},"Structs/Section.html":{"name":"Section","abstract":"

    Undocumented

    "},"Structs/HorizontalPadding.html":{"name":"HorizontalPadding","abstract":"

    Undocumented

    "},"Structs/SwipeActionsConfiguration.html":{"name":"SwipeActionsConfiguration","abstract":"

    Use SwipeActionsConfiguration to configure an item with SwipeActions."},"Structs/SwipeAction.html":{"name":"SwipeAction","abstract":"

    Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.

    "},"Protocols/AnySectionInfo.html#/s:10ListableUI14AnySectionInfoP13anyIdentifierAA0cG0Cvp":{"name":"anyIdentifier","abstract":"

    Undocumented

    ","parent_name":"AnySectionInfo"},"Protocols/AnySectionInfo.html#/s:10ListableUI14AnySectionInfoP11anyWasMoved10comparedToSbAaB_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"AnySectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoP10identifierAA10IdentifierCyxGvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoP8wasMoved10comparedToSbx_tF":{"name":"wasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoPAAE13anyIdentifierAA03AnyF0Cvp":{"name":"anyIdentifier","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoPAAE11anyWasMoved10comparedToSbAA03AnycD0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/AnyLocalizedCollatableItem.html#/s:10ListableUI26AnyLocalizedCollatableItemP15collationStringSSvp":{"name":"collationString","abstract":"

    Undocumented

    ","parent_name":"AnyLocalizedCollatableItem"},"Protocols/LocalizedCollatableItemContent.html#/s:10ListableUI30LocalizedCollatableItemContentP15collationStringSSvp":{"name":"collationString","abstract":"

    A string that represents the primary content of your ItemContent; usually a name or title.

    ","parent_name":"LocalizedCollatableItemContent"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP5StateQa":{"name":"State","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP7content4withADyAA0E5StateCy0H0QzG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP7content4withAA7ContentVAA0E5StateCy0I0QzG_tF":{"name":"content(with:)","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListEnvironmentKey.html#/s:10ListableUI18ListEnvironmentKeyP5ValueQa":{"name":"Value","abstract":"

    The type of value stored by this key.

    ","parent_name":"ListEnvironmentKey"},"Protocols/ListEnvironmentKey.html#/s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ":{"name":"defaultValue","abstract":"

    The default value that will be vended by an Environment for this key if no other value has been set.

    ","parent_name":"ListEnvironmentKey"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp":{"name":"scrollViewProperties","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP9directionAA0E9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF":{"name":"updateLayout(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF":{"name":"layout(delegate:in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP11setZIndexesyyF":{"name":"setZIndexes()","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE19visibleContentFrame3forSo6CGRectVSo16UICollectionViewC_tF":{"name":"visibleContentFrame(for:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE36positionStickySectionHeadersIfNeeded2inySo16UICollectionViewC_tF":{"name":"positionStickySectionHeadersIfNeeded(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF":{"name":"updateOverscrollFooterPosition(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF":{"name":"adjustPositionsForLayoutUnderflow(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF":{"name":"createEmptyLayout(appearance:behavior:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior8delegateAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewD8Delegate_ptF":{"name":"createPopulatedLayout(appearance:behavior:delegate:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF":{"name":"shouldRebuild(layout:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF":{"name":"isSameLayoutType(as:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP0D10AppearanceQa":{"name":"LayoutAppearance","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ":{"name":"defaults","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp":{"name":"layoutAppearance","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc":{"name":"init(layoutAppearance:appearance:behavior:content:)","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzc_tFZ":{"name":"describe(appearance:)","abstract":"

    Creates a new layout description for a list layout, with the provided optional layout configuration.

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE9directionAA0D9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/CollectionViewLayoutDelegate.html#/s:10ListableUI28CollectionViewLayoutDelegateP04listdE20UpdatedItemPositionsyySo012UICollectionD0CF":{"name":"listViewLayoutUpdatedItemPositions(_:)","abstract":"

    Undocumented

    ","parent_name":"CollectionViewLayoutDelegate"},"Protocols/CollectionViewLayoutDelegate.html#/s:10ListableUI28CollectionViewLayoutDelegateP04listE7Content8defaultsAA04ListeH0CAA0jE8DefaultsV_tF":{"name":"listLayoutContent(defaults:)","abstract":"

    Undocumented

    ","parent_name":"CollectionViewLayoutDelegate"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP0cD4TypeQa":{"name":"ItemContentType","abstract":"

    The type of ItemContent associated with this coordinator.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp":{"name":"actions","abstract":"

    The available actions you can perform on the coordinated Item. Eg, updating it to a new value.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp":{"name":"info","abstract":"

    Info about the coordinated Item, such as its original and current value.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF":{"name":"wasInserted(_:)","abstract":"

    Invoked on the coordinator when it is first created and configured.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF":{"name":"wasRemoved(_:)","abstract":"

    Invoked on the coordinator when its owned item is removed from the list due to","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF":{"name":"wasMoved(_:)","abstract":"

    Invoked on the coordinator when its owned item is moved inside a list due to its","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF":{"name":"wasUpdated(_:)","abstract":"

    Invoked on the coordinator when an external update is pushed onto the owned Item.","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4Viewa":{"name":"View","abstract":"

    The view type associated with the item.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp":{"name":"view","abstract":"

    The view, if any, currently used to display the item.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11willDisplay4withy0cD4Type_0D4ViewQZ_tF":{"name":"willDisplay(with:)","abstract":"

    Invoked when the list is about to begin displaying the item with the given view.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP13didEndDisplay4withy0cD4Type_0D4ViewQZ_tF":{"name":"didEndDisplay(with:)","abstract":"

    Invoked when the list is about to complete displaying the item with the given view.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF":{"name":"wasSelected()","abstract":"

    Invoked when the item is selected, via either user interaction or the selectionStyle.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF":{"name":"wasDeselected()","abstract":"

    Invoked when the item is deselected, via either user interaction or the selectionStyle.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP05swipeF5Width12CoreGraphics7CGFloatVvp":{"name":"swipeActionsWidth","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP16didPerformActionxySbc_tcfc":{"name":"init(didPerformAction:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP5apply7actionsyAA0eF13ConfigurationV_tF":{"name":"apply(actions:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP5apply5stateyAA0E11ActionStateO_tF":{"name":"apply(state:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp":{"name":"identifier","abstract":"

    Identifies the content across updates to the list. This value must remain the same,","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp":{"name":"defaultItemProperties","abstract":"

    Default values to assign to various properties on the Item which wraps","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Called when rendering the content. This is where you should push data from your","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF":{"name":"wasMoved(comparedTo:)","abstract":"

    Return true if the content’s sort changed based on the old value passed into the function.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","abstract":"

    Return false if the content’ changed based on the old value passed into the function.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP16SwipeActionsViewQa":{"name":"SwipeActionsView","abstract":"

    The view type to use to render swipe actions (delete, etc) for this content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP0D4ViewQa":{"name":"ContentView","abstract":"

    The content view used to draw the content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","abstract":"

    Create and return a new content view used to render the content.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP11CoordinatorQa":{"name":"Coordinator","abstract":"

    The coordinator type to use to manage the live state of the Item and ItemContent,","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP18CoordinatorActionsa":{"name":"CoordinatorActions","abstract":"

    The actions passed to the coordinator.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP15CoordinatorInfoa":{"name":"CoordinatorInfo","abstract":"

    The info passed to the coordinator.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF":{"name":"makeCoordinator(actions:info:)","abstract":"

    Creates a new coordinator with the provided actions and info.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP14BackgroundViewQa":{"name":"BackgroundView","abstract":"

    The background view used to draw the background of the content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ":{"name":"createReusableBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s background.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP22SelectedBackgroundViewQa":{"name":"SelectedBackgroundView","abstract":"

    The selected background view used to draw the background of the content when it is selected or highlighted.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ":{"name":"createReusableSelectedBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s selected background.

    ","parent_name":"ItemContent"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP11anyWasMoved10comparedToSbAA0cD0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP15anyIsEquivalent2toSbAA0cD0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP015newPresentationD5State4with15updateCallbacks015performsContentK0ypAA0dH12DependenciesV_AA06UpdateK0CSbtF":{"name":"newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10identifierAA0C10IdentifierCvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10anyContentypvp":{"name":"anyContent","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP6layoutAA0D6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP14selectionStyleAA0d9SelectionF0Ovp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP25insertAndRemoveAnimationsAA0d6InsertfgH0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP12swipeActionsAA05SwipeF13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10reorderingAA10ReorderingVSgvp":{"name":"reordering","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP5apply2to3for4withyAA0cdE5ViewsVyxG_AA11ApplyReasonOAA0kcdE4InfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP0E4ViewQa":{"name":"ContentView","abstract":"

    The content view used to draw the content.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","abstract":"

    Create and return a new content view used to render the content.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP14BackgroundViewQa":{"name":"BackgroundView","abstract":"

    The background view used to draw the background of the content.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ":{"name":"createReusableBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s background.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP21PressedBackgroundViewQa":{"name":"PressedBackgroundView","abstract":"

    The selected background view used to draw the background of the content when it is selected or highlighted.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ":{"name":"createReusablePressedBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s pressed background.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentPAASQRzrlE12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","parent_name":"HeaderFooterContent"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP6layoutAA0dE6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0ldE11ContentInfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP15anyIsEquivalent2toSbAA0cdE0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP015newPresentationdE5State24performsContentCallbacksypSb_tF":{"name":"newPresentationHeaderFooterState(performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter.html#/s:10ListableUI15AnyHeaderFooterP6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter"},"Protocols/AnyHeaderFooter.html#/s:10ListableUI15AnyHeaderFooterP6layoutAA0dE6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter"},"Protocols/AnyHeaderFooter.html":{"name":"AnyHeaderFooter","abstract":"

    Undocumented

    "},"Protocols/AnyHeaderFooter_Internal.html":{"name":"AnyHeaderFooter_Internal","abstract":"

    Undocumented

    "},"Protocols/HeaderFooterContent.html":{"name":"HeaderFooterContent","abstract":"

    A HeaderFooterContent is a type which specifies the content of a header, footer,"},"Protocols/AnyItem.html":{"name":"AnyItem","abstract":"

    Undocumented

    "},"Protocols/AnyItem_Internal.html":{"name":"AnyItem_Internal","abstract":"

    Undocumented

    "},"Protocols/ItemContent.html":{"name":"ItemContent","abstract":"

    An ItemContent is a type used to provide the content of an Item"},"Protocols/ItemContentSwipeActionsView.html":{"name":"ItemContentSwipeActionsView","abstract":"

    Conform to this protocol to implement a completely custom swipe action view.

    "},"Protocols/ItemContentCoordinator.html":{"name":"ItemContentCoordinator","abstract":"

    A type which lets you interactively manage the contents of an Item or ItemContent"},"Protocols/CollectionViewLayoutDelegate.html":{"name":"CollectionViewLayoutDelegate","abstract":"

    Undocumented

    "},"Protocols/ListLayout.html":{"name":"ListLayout","abstract":"

    Undocumented

    "},"Protocols/AnyLayoutDescriptionConfiguration.html":{"name":"AnyLayoutDescriptionConfiguration","abstract":"

    Undocumented

    "},"Protocols/AnyListLayout.html":{"name":"AnyListLayout","abstract":"

    Undocumented

    "},"Protocols/ListLayoutAppearance.html":{"name":"ListLayoutAppearance","abstract":"

    Undocumented

    "},"Protocols/ListEnvironmentKey.html":{"name":"ListEnvironmentKey","abstract":"

    Defines a value stored in the ListEnvironment of a list.

    "},"Protocols/ListViewSource.html":{"name":"ListViewSource","abstract":"

    Undocumented

    "},"Protocols/LocalizedCollatableItemContent.html":{"name":"LocalizedCollatableItemContent","abstract":"

    If you would like to make your ItemContent work with the LocalizedItemCollator,"},"Protocols/AnyLocalizedCollatableItem.html":{"name":"AnyLocalizedCollatableItem","abstract":"

    Represents an AnyItem which can be collated, via its vended collationString.

    "},"Protocols/SectionInfo.html":{"name":"SectionInfo","abstract":"

    Undocumented

    "},"Protocols/AnySectionInfo.html":{"name":"AnySectionInfo","abstract":"

    Undocumented

    "},"Functions.html#/s:10ListableUI13listableFatal_4file4lines5NeverOSSyXK_s12StaticStringVSutF":{"name":"listableFatal(_:file:line:)","abstract":"

    Undocumented

    "},"Functions.html#/s:10ListableUI20listablePrecondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF":{"name":"listablePrecondition(_:_:file:line:)","abstract":"

    Undocumented

    "},"Extensions/Set.html#/s:Sh10ListableUIAA15ScrollAnimationO0D7OptionsORszrlE7defaultShyAEGvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"Set"},"Extensions/UIRectEdge.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"UIRectEdge"},"Extensions/SectionedDiff.html#/SectionChanges":{"name":"SectionChanges","parent_name":"SectionedDiff"},"Extensions/SectionedDiff.html#/ItemChanges":{"name":"ItemChanges","parent_name":"SectionedDiff"},"Extensions/SectionedDiff.html":{"name":"SectionedDiff"},"Extensions/UIRectEdge.html":{"name":"UIRectEdge"},"Extensions/Set.html":{"name":"Set"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO4leftyA2EmF":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO6centeryA2EmF":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO5rightyA2EmF":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO10originWith06parentD05width7padding12CoreGraphics7CGFloatVAL_AlA17HorizontalPaddingVtF":{"name":"originWith(parentWidth:width:padding:)","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V7paddingAA17HorizontalPaddingVvp":{"name":"padding","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V5widthAA0D10ConstraintOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V9alignmentAC9AlignmentOvp":{"name":"alignment","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V7padding5width9alignmentAeA17HorizontalPaddingV_AA0D10ConstraintOAC9AlignmentOtcfc":{"name":"init(padding:width:alignment:)","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V8position4withAC8PositionVSo6CGSizeV_tF":{"name":"position(with:)","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO7defaultyA2CmF":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO4fillyA2CmF":{"name":"fill","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO6customyA2C0C0VcACmF":{"name":"custom(_:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO5merge4withA2C_tF":{"name":"merge(with:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO8position4with07defaultD0AC8PositionVSo6CGSizeV_12CoreGraphics7CGFloatVtF":{"name":"position(with:defaultWidth:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth/Custom.html":{"name":"Custom","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth/Alignment.html":{"name":"Alignment","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO8PositionV":{"name":"Position","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO02noD0yA2CmF":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO5fixedyAC12CoreGraphics7CGFloatVcACmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO6atMostyAC12CoreGraphics7CGFloatVcACmF":{"name":"atMost(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO5clampy12CoreGraphics7CGFloatVAGF":{"name":"clamp(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO7defaultyA2ImF":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO5fixedyAI12CoreGraphics7CGFloatVcAImF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO5value4with12CoreGraphics7CGFloatVAN_tF":{"name":"value(with:)","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO02noD0yA2GmF":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO7atLeastyA2G5ValueOcAGmF":{"name":"atLeast(_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO6atMostyAG12CoreGraphics7CGFloatVcAGmF":{"name":"atMost(_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO6withinyA2G5ValueO_12CoreGraphics7CGFloatVtcAGmF":{"name":"within(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis/Value.html":{"name":"Value","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5clamp_4with12CoreGraphics7CGFloatVAL_ALtF":{"name":"clamp(_:with:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5widthAE4AxisOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV6heightAE4AxisOvp":{"name":"height","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV02noD0AEvpZ":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintVyA2E4AxisOcfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5width6heightA2E4AxisO_AItcfc":{"name":"init(width:height:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5clamp_4withSo6CGSizeVAI_AItF":{"name":"clamp(_:with:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint/Axis.html":{"name":"Axis","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing.html#/s:10ListableUI6SizingO7defaultyA2CmF":{"name":"default","abstract":"

    The default size from the list’s appearance is used. The size is not dynamic at all.

    ","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO5fixedyAC12CoreGraphics7CGFloatV_AGtcACmF":{"name":"fixed(width:height:)","abstract":"

    Fixes the size to the absolute value passed in.

    ","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO8thatFitsyA2C10ConstraintVcACmF":{"name":"thatFits(_:)","abstract":"

    Sizes the item by calling sizeThatFits on its underlying view type.","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO10autolayoutyA2C10ConstraintVcACmF":{"name":"autolayout(_:)","abstract":"

    Sizes the item by calling systemLayoutSizeFitting on its underlying view type.","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO11MeasureInfoV":{"name":"MeasureInfo","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Enums/Sizing/Constraint.html":{"name":"Constraint","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO14curveEaseInOutyA2EmF":{"name":"curveEaseInOut","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO11curveEaseInyA2EmF":{"name":"curveEaseIn","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO12curveEaseOutyA2EmF":{"name":"curveEaseOut","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO11curveLinearyA2EmF":{"name":"curveLinear","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO4noneyA2CmF":{"name":"none","abstract":"

    No animation is performed.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO7defaultyA2CmF":{"name":"default","abstract":"

    A default animation is performed. This is the same as .custom().

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO6customyACSd_ShyAC0D7OptionsOGtcACmF":{"name":"custom(duration:options:)","abstract":"

    A custom animation is performed.","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO6springyACSd_So24UISpringTimingParametersCtcACmF":{"name":"spring(duration:timing:)","abstract":"

    Undocumented

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO3and4withACSb_tF":{"name":"and(with:)","abstract":"

    Ands the animation with the provided bool, returning the animation if true, and .none if false.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO7perform10animations10completionyyyc_ySbctF":{"name":"perform(animations:completion:)","abstract":"

    Performs the provided animations for the ScrollAnimation.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation/AnimationOptions.html":{"name":"AnimationOptions","abstract":"

    The animations options available for the ScrollAnimation.

    ","parent_name":"ScrollAnimation"},"Enums/ListSizing.html#/s:10ListableUI10ListSizingO10fillParentyA2CmF":{"name":"fillParent","abstract":"

    When using .fillParent, the full available space will be taken up, regardless","parent_name":"ListSizing"},"Enums/ListSizing.html#/s:10ListableUI10ListSizingO14measureContentyA2CmF":{"name":"measureContent","abstract":"

    When using .measureContent, the content will be measured within the provided fitting size","parent_name":"ListSizing"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO8verticalyA2CmF":{"name":"vertical","abstract":"

    A list layout which lays out top to bottom.

    ","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO10horizontalyA2CmF":{"name":"horizontal","abstract":"

    A list layout which lays out left to right (or leading to trailing, depending on implementation).

    ","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXE_xyXEtlF":{"name":"switch(vertical:horizontal:)","abstract":"

    When writing a layout, use this method to return differing values based on","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXK_xyXKtlF":{"name":"switch(vertical:horizontal:)","abstract":"

    When writing a layout, use this method to return differing values based on","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6height3for12CoreGraphics7CGFloatVSo6CGSizeV_tF":{"name":"height(for:)","abstract":"

    .vertical: Returns the height of the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO5width3for12CoreGraphics7CGFloatVSo6CGSizeV_tF":{"name":"width(for:)","abstract":"

    .vertical: Returns the width of the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO5point1x1ySo7CGPointV12CoreGraphics7CGFloatV_AKtF":{"name":"point(x:y:)","abstract":"

    .vertical: Returns a CGPoint made with (x, y).","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4size3forSo6CGSizeVAG_tF":{"name":"size(for:)","abstract":"

    .vertical: Returns the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4size5width6heightSo6CGSizeV12CoreGraphics7CGFloatV_AKtF":{"name":"size(width:height:)","abstract":"

    .vertical: Returns a CGSize made with (width, height).","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4maxY3for12CoreGraphics7CGFloatVSo6CGRectV_tF":{"name":"maxY(for:)","abstract":"

    .vertical: Returns the maxY of the frame.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4maxX3for12CoreGraphics7CGFloatVSo6CGRectV_tF":{"name":"maxX(for:)","abstract":"

    .vertical: Returns the maxX of the frame.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO1x3for12CoreGraphics7CGFloatVSo7CGPointV_tF":{"name":"x(for:)","abstract":"

    .vertical: Returns the x of the point.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO1y3for12CoreGraphics7CGFloatVSo7CGPointV_tF":{"name":"y(for:)","abstract":"

    .vertical: Returns the y of the point.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO3top4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF":{"name":"top(with:)","abstract":"

    .vertical: Returns the top of the insets.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6bottom4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF":{"name":"bottom(with:)","abstract":"

    .vertical: Returns the bottom of the insets.","parent_name":"LayoutDirection"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO13notSelectableyA2CmF":{"name":"notSelectable","abstract":"

    The item is not selectable at all.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO8tappableyA2CmF":{"name":"tappable","abstract":"

    The item is temporarily selectable. Once the user lifts their finger, the item is deselected.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO10selectableyACSb_tcACmF":{"name":"selectable(isSelected:)","abstract":"

    The item is persistently selectable. Once the user lifts their finger, the item is maintained.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO6singleyA2CmF":{"name":"single","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO5firstyA2CmF":{"name":"first","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO6middleyA2CmF":{"name":"middle","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO4lastyA2CmF":{"name":"last","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO6closedyA2CmF":{"name":"closed","abstract":"

    The actions are completely collapsed.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO4openyA2CmF":{"name":"open","abstract":"

    The actions are open to their natural size.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO7swipingyACSb_tcACmF":{"name":"swiping(willPerformAction:)","abstract":"

    The actions are being swiped and the size is affected by the gesture recognizer.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO016willPerformFirstD13AutomaticallyyA2CmF":{"name":"willPerformFirstActionAutomatically","abstract":"

    The actions have been swiped far enough to confirm the first action.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO13expandActionsyA2CmF":{"name":"expandActions","abstract":"

    The actions have been asked to completely expand (typically because the item is being deleted).

    ","parent_name":"SwipeActionState"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO03anyC0ShyACGvpZ":{"name":"anyContent","abstract":"

    If there is any content in the list at all, including headers and footers.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO12sectionsOnlyShyACGvpZ":{"name":"sectionsOnly","abstract":"

    Check if the content in the list is section-driven content, with the","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO10listHeaderyA2CmF":{"name":"listHeader","abstract":"

    If the list has a list-level header.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO10listFooteryA2CmF":{"name":"listFooter","abstract":"

    If the list has a list-level footer.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO16overscrollFooteryA2CmF":{"name":"overscrollFooter","abstract":"

    If the list has an overscroll footer.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO5itemsyA2CmF":{"name":"items","abstract":"

    If the sections in the list contain any items.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO14sectionHeadersyA2CmF":{"name":"sectionHeaders","abstract":"

    If any section in the list has a header.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO14sectionFootersyA2CmF":{"name":"sectionFooters","abstract":"

    If any section in the list has a footer.

    ","parent_name":"ContentFilters"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV11destinationAC0D11DestinationOvp":{"name":"destination","abstract":"

    The item in the list to scroll to when the insertedIdentifier is inserted.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV18insertedIdentifierAA03AnyJ0Cvp":{"name":"insertedIdentifier","abstract":"

    The identifier of the item for which the AutoScrollAction should be performed.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV8positionAA0D8PositionVvp":{"name":"position","abstract":"

    The desired scroll position,

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV9animationAA0D9AnimationOvp":{"name":"animation","abstract":"

    How to animate the change.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV13shouldPerformySbAA04ListD12PositionInfoVcvp":{"name":"shouldPerform","abstract":"

    An additional check you may provide to approve or reject the scroll action.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV10didPerformyyAA04ListD12PositionInfoVcvp":{"name":"didPerform","abstract":"

    Called when the list performs the insertion.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO9firstItemyA2EmF":{"name":"firstItem","abstract":"

    Scroll to the first item in the list.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO8lastItemyA2EmF":{"name":"lastItem","abstract":"

    Scroll to the last item in the list.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO4itemyAeA13AnyIdentifierCcAEmF":{"name":"item(_:)","abstract":"

    Scroll to the item with the specified identifier.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO4noneyA2CmF":{"name":"none","abstract":"

    The list never automatically scrolls.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO12scrollToItemyA2C010OnInsertedH0V_tcACmF":{"name":"scrollToItem(onInsertOf:)","abstract":"

    Scrolls to the specified item when the list is updated if the item was inserted in this update.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO8scrollTo_10onInsertOf8position9animation13shouldPerform03didN0A2C0D11DestinationOSg_AA13AnyIdentifierCAA0D8PositionVAA0D9AnimationOSbAA04ListdS4InfoVcyATctFZ":{"name":"scrollTo(_:onInsertOf:position:animation:shouldPerform:didPerform:)","abstract":"

    Scrolls to the specified item when the list is updated if the item was inserted in this update.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction/ScrollDestination.html":{"name":"ScrollDestination","abstract":"

    Where to scroll as a result of an AutoScrollAction.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction/OnInsertedItem.html":{"name":"OnInsertedItem","abstract":"

    Values used to configure the scrollToItem(onInsertOf:) action.

    ","parent_name":"AutoScrollAction"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO11willDisplayyA2CmF":{"name":"willDisplay","abstract":"

    The view is about to be displayed on screen. Update should be performed with no animation.

    ","parent_name":"ApplyReason"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO10wasUpdatedyA2CmF":{"name":"wasUpdated","abstract":"

    A view that is already visible is being updated.","parent_name":"ApplyReason"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO13shouldAnimateSbvp":{"name":"shouldAnimate","abstract":"

    If you should use animations while applying the update.","parent_name":"ApplyReason"},"Enums/ApplyReason.html":{"name":"ApplyReason","abstract":"

    Why the Item or HeaderFooter is being asked to apply an update to its presented views.

    "},"Enums/AutoScrollAction.html":{"name":"AutoScrollAction","abstract":"

    Options for auto-scrolling to items when the list is updated.

    "},"Enums/ContentFilters.html":{"name":"ContentFilters","abstract":"

    A filter enum which allows you to query the types of content contained in a Content or Section object.

    "},"Enums/SwipeActionState.html":{"name":"SwipeActionState","abstract":"

    These states dictate the layout of the swipe actions.

    "},"Enums/ItemPosition.html":{"name":"ItemPosition","abstract":"

    Undocumented

    "},"Enums/ItemSelectionStyle.html":{"name":"ItemSelectionStyle","abstract":"

    Controls the selection style and behavior of an item in a list.

    "},"Enums/LayoutDirection.html":{"name":"LayoutDirection","abstract":"

    Describes the given direction / axis that a layout uses when flowing its content.

    "},"Enums/ListSizing.html":{"name":"ListSizing","abstract":"

    Provides the possible options for how to size and measure a list when its measured size is queried"},"Enums/ScrollAnimation.html":{"name":"ScrollAnimation","abstract":"

    Specifies the kind of animation to use when scrolling a list view.

    "},"Enums/Sizing.html":{"name":"Sizing","abstract":"

    Controls how a header, footer, or item in a list view is sized.

    "},"Enums/WidthConstraint.html":{"name":"WidthConstraint","abstract":"

    Undocumented

    "},"Enums/CustomWidth.html":{"name":"CustomWidth","abstract":"

    Undocumented

    "},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC8isMovingSbvp":{"name":"isMoving","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC11beginMovingSbyF":{"name":"beginMoving()","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC5moved4withySo22UIPanGestureRecognizerC_tF":{"name":"moved(with:)","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC3endyyF":{"name":"end()","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)init":{"name":"init()","abstract":"

    Creates a preview for the given width.

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/s:10ListableUI15ItemPreviewViewC4with5state10appearance4itemAC12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptcfc":{"name":"init(with:state:appearance:item:)","abstract":"

    Creates a preview for the given item and parameters, and then lays out the preview view.

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF":{"name":"update(with:state:appearance:item:)","abstract":"

    Updates the item for the given parameters.","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/StaticSource/State.html#/s:10ListableUI12StaticSourceC5StateVAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"State"},"Classes/StaticSource/State.html":{"name":"State","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7contentAA7ContentVvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC4withAcA7ContentV_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC4withACyAA7ContentVzXE_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7content4withADyAA0D5StateCyAC0G0VG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7content4withAA7ContentVAA0D5StateCyAC0H0VG_tF":{"name":"content(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC7Buildera":{"name":"Builder","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC4withACyxGyAA0D5StateCyxG_AA7ContentVztc_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC7content4withADyAA0D5StateCyxG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC5valuexvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC3setyyyxzXEF":{"name":"set(_:)","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC7initial9didChangeACyxGx_yyctcfc":{"name":"init(initial:didChange:)","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC7discardyyF":{"name":"discard()","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/StateAccessor.html#/s:10ListableUI13StateAccessorC5valuexvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"StateAccessor"},"Classes/ListViewController.html#/s:10ListableUI18ListViewControllerC9configure4listyAA0C10PropertiesVz_tF":{"name":"configure(list:)","abstract":"

    Override this method to configure your list how you’d like to.","parent_name":"ListViewController"},"Classes/ListViewController.html#/s:10ListableUI18ListViewControllerC6reload8animatedySb_tF":{"name":"reload(animated:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)initWithNibName:bundle:":{"name":"init(nibName:bundle:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)loadView":{"name":"loadView()","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)viewWillAppear:":{"name":"viewWillAppear(_:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListView.html#/s:10ListableUI8ListViewC5frame10appearanceACSo6CGRectV_AA10AppearanceVtcfc":{"name":"init(frame:appearance:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC18scrollPositionInfoAA0c6ScrollfG0Vvp":{"name":"scrollPositionInfo","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC6layoutAA17LayoutDescriptionVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC3set6layout8animated10completionyAA17LayoutDescriptionV_SbyyctF":{"name":"set(layout:animated:completion:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC21scrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"scrollIndicatorInsets","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC13stateObserverAA0c5StateF0Vvp":{"name":"stateObserver","abstract":"

    A state observer allows you to receive callbacks when varying types","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC16ScrollCompletiona":{"name":"ScrollCompletion","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0M9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the provided item, with the provided positioning.","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0M9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the item with the provided identifier, with the provided positioning.","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToTop(animation:completion:)","abstract":"

    Scrolls to the very top of the list, which includes displaying the list header.

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToLastItem(animation:completion:)","abstract":"

    Scrolls to the last item in the list. If the list contains no items, no action is performed.

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11environmentAA0C11EnvironmentVvp":{"name":"environment","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC7contentAA7ContentVvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC10setContent8animated_ySb_AA0F0VtF":{"name":"setContent(animated:_:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC3set6source7initial8animatedAA13StateAccessorCy0I0QzGx_AKSbtAA0cD6SourceRzlF":{"name":"set(source:initial:animated:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC9configure4withyyAA0C10PropertiesVzXE_tF":{"name":"configure(with:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC9configure4withyAA0C10PropertiesV_tF":{"name":"configure(with:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)frame":{"name":"frame","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)bounds":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)backgroundColor":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)didMoveToWindow":{"name":"didMoveToWindow()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)didMoveToSuperview":{"name":"didMoveToSuperview()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_yAA0C10PropertiesVzXEtFZ":{"name":"contentSize(in:for:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_AA0C10PropertiesVtFZ":{"name":"contentSize(in:for:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC28testing_forceLayoutUpdateNowyyF":{"name":"testing_forceLayoutUpdateNow()","abstract":"

    Call this method to force an immediate, synchronous re-render of the list","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF":{"name":"clearSelectionDuringViewWillAppear(alongside:animated:)","abstract":"

    A method which provides Behavior.SelectionMode.single‘s clearsSelectionOnViewWillAppear behaviour.","parent_name":"ListView"},"Classes/ListActions/ViewControllerTransitioning.html#/s:10ListableUI11ListActionsC27ViewControllerTransitioningCAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ViewControllerTransitioning"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingCAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC16ScrollCompletiona":{"name":"ScrollCompletion","abstract":"

    Undocumented

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0N9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the provided item, with the provided positioning.","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0N9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the item with the provided identifier, with the provided positioning.","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToTop(animation:completion:)","abstract":"

    Scrolls to the very top of the list, which includes displaying the list header.

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToLastItem(animation:completion:)","abstract":"

    Scrolls to the last item in the list. If the list contains no items, no action is performed.

    ","parent_name":"Scrolling"},"Classes/ListActions.html#/s:10ListableUI11ListActionsC9scrollingAC9ScrollingCvp":{"name":"scrolling","abstract":"

    Actions which allow scrolling to individual items in a list.

    ","parent_name":"ListActions"},"Classes/ListActions.html#/s:10ListableUI11ListActionsC27viewControllerTransitioningAC04ViewfG0Cvp":{"name":"viewControllerTransitioning","abstract":"

    Actions which allow hooking up your list to the view controller transitioning APIs.

    ","parent_name":"ListActions"},"Classes/ListActions.html#/s:10ListableUI11ListActionsCACycfc":{"name":"init()","abstract":"

    Creates and returns an actions object which can be registered with a list view.

    ","parent_name":"ListActions"},"Classes/ListActions/Scrolling.html":{"name":"Scrolling","abstract":"

    Provides access to scrolling actions within a list view.

    ","parent_name":"ListActions"},"Classes/ListActions/ViewControllerTransitioning.html":{"name":"ViewControllerTransitioning","abstract":"

    Provides access to view controller transitioning options in a list.

    ","parent_name":"ListActions"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC11SectionInfoC":{"name":"SectionInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC":{"name":"SupplementaryItemInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC8ItemInfoC":{"name":"ItemInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp":{"name":"actions","parent_name":"DefaultItemContentCoordinator"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp":{"name":"info","parent_name":"DefaultItemContentCoordinator"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp":{"name":"view","parent_name":"DefaultItemContentCoordinator"},"Classes/ItemContentCoordinatorInfo.html#/s:10ListableUI26ItemContentCoordinatorInfoC8originalAA0C0VyxGvp":{"name":"original","abstract":"

    The original state of the item, as passed to the list.","parent_name":"ItemContentCoordinatorInfo"},"Classes/ItemContentCoordinatorInfo.html#/s:10ListableUI26ItemContentCoordinatorInfoC7currentAA0C0VyxGvp":{"name":"current","abstract":"

    The current value of the item, including changes made","parent_name":"ItemContentCoordinatorInfo"},"Classes/ItemContentCoordinatorActions.html#/s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_AA0C0VyxGtF":{"name":"update(animated:_:)","abstract":"

    Updates the item to the provided item.

    ","parent_name":"ItemContentCoordinatorActions"},"Classes/ItemContentCoordinatorActions.html#/s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_yAA0C0VyxGzXEtF":{"name":"update(animated:_:)","abstract":"

    Allows you to update the item passed into the update closure.

    ","parent_name":"ItemContentCoordinatorActions"},"Classes/__LST_KeyboardObserver_ObjCAccess.html#/c:@M@ListableUI@objc(cs)__LST_KeyboardObserver_ObjCAccess(cm)__setupSharedInstance":{"name":"__setupSharedInstance()","abstract":"

    Undocumented

    ","parent_name":"__LST_KeyboardObserver_ObjCAccess"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC05swipeE5Width12CoreGraphics7CGFloatVvp":{"name":"swipeActionsWidth","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC16didPerformActionACySbc_tcfc":{"name":"init(didPerformAction:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/c:@M@ListableUI@objc(cs)DefaultSwipeActionsView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC5apply7actionsyAA0dE13ConfigurationV_tF":{"name":"apply(actions:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC5apply5stateyAA0D11ActionStateO_tF":{"name":"apply(state:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/AnyIdentifier.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"AnyIdentifier"},"Classes/AnyIdentifier.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"AnyIdentifier"},"Classes/AnyIdentifier.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"AnyIdentifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierCACyxGycfc":{"name":"init()","abstract":"

    Identifier which identifies by the type of Represented only.","parent_name":"Identifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierCyACyxGqd__cSHRd__lufc":{"name":"init(_:)","abstract":"

    Creates an identifier which identifies by both Represented, and the value passed to init.

    ","parent_name":"Identifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierC16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    Undocumented

    ","parent_name":"Identifier"},"Classes/Identifier.html":{"name":"Identifier","abstract":"

    An Identifier is used to unique items in Listable lists. Sections,"},"Classes/AnyIdentifier.html":{"name":"AnyIdentifier","abstract":"

    A type-erased Identifier used to identify content in a listable list.

    "},"Classes/DefaultSwipeActionsView.html":{"name":"DefaultSwipeActionsView","abstract":"

    Undocumented

    "},"Classes/__LST_KeyboardObserver_ObjCAccess.html":{"name":"__LST_KeyboardObserver_ObjCAccess","abstract":"

    An Objective-C accessible class that lets us set up the shared"},"Classes/ItemContentCoordinatorActions.html":{"name":"ItemContentCoordinatorActions","abstract":"

    The available actions you can perform as a coordinator, which are reported back to the list to manage the item.

    "},"Classes/ItemContentCoordinatorInfo.html":{"name":"ItemContentCoordinatorInfo","abstract":"

    Information about the current and original state of the item.

    "},"Classes/DefaultItemContentCoordinator.html":{"name":"DefaultItemContentCoordinator","abstract":"

    The default ItemContentCoordinator, which performs no actions.

    "},"Classes/ListLayoutContent.html":{"name":"ListLayoutContent","abstract":"

    Undocumented

    "},"Classes/ListActions.html":{"name":"ListActions","abstract":"

    ListActions is an type that you can use to gain access to actions to perform on a List"},"Classes/ListView.html":{"name":"ListView","abstract":"

    Undocumented

    "},"Classes.html#/s:10ListableUI15UpdateCallbacksC":{"name":"UpdateCallbacks","abstract":"

    Undocumented

    "},"Classes/ListViewController.html":{"name":"ListViewController","abstract":"

    A class which provides an easy way to set up and display a ListView,"},"Classes/StateAccessor.html":{"name":"StateAccessor","abstract":"

    Undocumented

    "},"Classes/SourceState.html":{"name":"SourceState","abstract":"

    Undocumented

    "},"Classes/DynamicSource.html":{"name":"DynamicSource","abstract":"

    Undocumented

    "},"Classes/StaticSource.html":{"name":"StaticSource","abstract":"

    Undocumented

    "},"Classes/ItemPreviewView.html":{"name":"ItemPreviewView","abstract":"

    A view you can use to test the various possible states that your ItemContent can be in.

    "},"Classes/ReorderingActions.html":{"name":"ReorderingActions","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Functions.html":{"name":"Functions","abstract":"

    The following functions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/s:10ListableUI6Headera":{"name":"Header","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI6Footera":{"name":"Footer","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI13HeaderContenta":{"name":"HeaderContent","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI13FooterContenta":{"name":"FooterContent","abstract":"

    Undocumented

    "},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV17CompletionHandlera":{"name":"CompletionHandler","abstract":"

    The completion handler to call after performing the swipe action.

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV7Handlera":{"name":"Handler","abstract":"

    The completion handler called when the action is tapped.

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5titleSSSgvp":{"name":"title","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV15backgroundColorSo7UIColorCSgvp":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5imageSo7UIImageCSgvp":{"name":"image","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV7handleryyySbccvp":{"name":"handler","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5title15backgroundColor5image7handlerACSS_So7UIColorCSo7UIImageCSgyySbcctcfc":{"name":"init(title:backgroundColor:image:handler:)","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV7actionsSayAA0C6ActionVGvp":{"name":"actions","abstract":"

    The actions to display when the cell is swiped.

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC0Sbvp":{"name":"performsFirstActionWithFullSwipe","abstract":"

    Whether the first action is performed automatically with a full swipe.

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV6action027performsFirstActionWithFullC0AcA0cI0V_Sbtcfc":{"name":"init(action:performsFirstActionWithFullSwipe:)","abstract":"

    Undocumented

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV7actions027performsFirstActionWithFullC0ACSayAA0cI0VG_Sbtcfc":{"name":"init(actions:performsFirstActionWithFullSwipe:)","abstract":"

    Undocumented

    ","parent_name":"SwipeActionsConfiguration"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4left12CoreGraphics7CGFloatVvp":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV5right12CoreGraphics7CGFloatVvp":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4zeroACvpZ":{"name":"zero","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4left5rightAC12CoreGraphics7CGFloatV_AHtcfc":{"name":"init(left:right:)","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV7uniformAC12CoreGraphics7CGFloatV_tcfc":{"name":"init(uniform:)","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/Section.html#/s:10ListableUI7SectionV4infoAA03AnyC4Info_pvp":{"name":"info","abstract":"

    Data backing the identity and updates to the section – for example","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6headerAA15AnyHeaderFooter_pSgvp":{"name":"header","abstract":"

    The header, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6footerAA15AnyHeaderFooter_pSgvp":{"name":"footer","abstract":"

    The footer, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV5itemsSayAA7AnyItem_pGvp":{"name":"items","abstract":"

    The items, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV8contains3anySbShyAA14ContentFiltersOG_tF":{"name":"contains(any:)","abstract":"

    Check if the section contains any of the given types, which you specify via the filters","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV7layoutsAA0C7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV9Configurea":{"name":"Configure","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_9configureACx_yACzXEtcAA0C4InfoRzlufc":{"name":"init(_:configure:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_7layouts6header6footer5items9configureACx_AA0C7LayoutsVAA15AnyHeaderFooter_pSgALSayAA0J4Item_pGyACzXEtcSHRzlufc":{"name":"init(_:layouts:header:footer:items:configure:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_7layouts6header6footer5items9configureACx_AA0C7LayoutsVAA15AnyHeaderFooter_pSgALSayAA0J4Item_pGyACzXEtcAA0C4InfoRzlufc":{"name":"init(_:layouts:header:footer:items:configure:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV3addyyAA7AnyItem_pF":{"name":"add(_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_AA7AnyItem_ptFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_AA4ItemVyxGtAA0E7ContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_xtAA11ItemContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayAA7AnyItem_pGtFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayAA4ItemVyxGGtAA0E7ContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayxGtAA11ItemContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/ScrollPosition/IfAlreadyVisible.html#/s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO9doNothingyA2EmF":{"name":"doNothing","abstract":"

    Do not perform any action if the item is already partially visible.

    ","parent_name":"IfAlreadyVisible"},"Structs/ScrollPosition/IfAlreadyVisible.html#/s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO08scrollToD0yA2EmF":{"name":"scrollToPosition","abstract":"

    Scroll the item to the desired Position, even if it is already partially visible.

    ","parent_name":"IfAlreadyVisible"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O3topyA2EmF":{"name":"top","abstract":"

    Scroll the item to the top of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O8centeredyA2EmF":{"name":"centered","abstract":"

    Scroll the item to the middle of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O6bottomyA2EmF":{"name":"bottom","abstract":"

    Scroll the item to the bottom of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition.html#/s:10ListableUI14ScrollPositionV8position16ifAlreadyVisible6offsetA2C0D0O_AC02IfgH0O12CoreGraphics7CGFloatVtcfc":{"name":"init(position:ifAlreadyVisible:offset:)","abstract":"

    Creates a new scroll position with the provided values.

    ","parent_name":"ScrollPosition"},"Structs/ScrollPosition/Position.html":{"name":"Position","abstract":"

    How the item should be positioned within the list.

    ","parent_name":"ScrollPosition"},"Structs/ScrollPosition/IfAlreadyVisible.html":{"name":"IfAlreadyVisible","abstract":"

    What action should be taken if an item is already partially visible within a list.

    ","parent_name":"ScrollPosition"},"Structs/RefreshControl/Title.html#/s:10ListableUI14RefreshControlV5TitleO6stringyAESScAEmF":{"name":"string(_:)","abstract":"

    Undocumented

    ","parent_name":"Title"},"Structs/RefreshControl/Title.html#/s:10ListableUI14RefreshControlV5TitleO10attributedyAESo18NSAttributedStringCcAEmF":{"name":"attributed(_:)","abstract":"

    Undocumented

    ","parent_name":"Title"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV12isRefreshingSbvp":{"name":"isRefreshing","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV5titleAC5TitleOSgvp":{"name":"title","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV9tintColorSo7UIColorCSgvp":{"name":"tintColor","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV02OnC0a":{"name":"OnRefresh","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV02onC0yycvp":{"name":"onRefresh","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV12isRefreshing5title9tintColor02onC0ACSb_AC5TitleOSgSo7UIColorCSgyyctcfc":{"name":"init(isRefreshing:title:tintColor:onRefresh:)","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl/Title.html":{"name":"Title","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/ItemPreviewAppearance.html#/s:10ListableUI21ItemPreviewAppearanceV7padding15backgroundColorAC12CoreGraphics7CGFloatV_So7UIColorCtcfc":{"name":"init(padding:backgroundColor:)","abstract":"

    Creates a new preview appearance.

    ","parent_name":"ItemPreviewAppearance"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV5width12CoreGraphics7CGFloatVvp":{"name":"width","abstract":"

    The width of the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV5stateAA0C5StateVvp":{"name":"state","abstract":"

    The ItemState to use in the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV10appearanceAA0cD10AppearanceVvp":{"name":"appearance","abstract":"

    The desired appearance of the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV4with5state10appearanceAE12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVtcfc":{"name":"init(with:state:appearance:)","abstract":"

    Creates a new preview with the desired options.

    ","parent_name":"Properties"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV4itemAA03AnyC0_pvp":{"name":"item","abstract":"

    The item being previewed by the preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV10propertiesAC10PropertiesVvp":{"name":"properties","abstract":"

    The properties of the current preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview/Properties.html":{"name":"Properties","abstract":"

    The properties of a preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ":{"name":"previews(for:with:)","abstract":"

    Creates and returns a SwiftUI view that contains individual previews for each of the provided","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_12CoreGraphics7CGFloatVAA0cD10AppearanceVtFZ":{"name":"withAllItemStates(for:width:appearance:)","abstract":"

    Creates and returns a SwiftUI view that contains individual previews for all the possible","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV_5width5state10appearanceAcA03AnyC0_p_12CoreGraphics7CGFloatVAA0C5StateVAA0cD10AppearanceVtcfc":{"name":"init(_:width:state:appearance:)","abstract":"

    Creates a new preview with the provided properties.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV_10propertiesAcA03AnyC0_p_AC10PropertiesVtcfc":{"name":"init(_:properties:)","abstract":"

    Creates a new preview with the provided properties.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"ItemPreview"},"Structs/LocalizedItemCollator/CollatedSection.html#/s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5titleSSvp":{"name":"title","abstract":"

    The title of section – a single letter like A, B, C, D, E, etc.","parent_name":"CollatedSection"},"Structs/LocalizedItemCollator/CollatedSection.html#/s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5itemsSayAA03AnyD0_pGvp":{"name":"items","abstract":"

    The sorted items in the collated sections.

    ","parent_name":"CollatedSection"},"Structs/LocalizedItemCollator.html#/s:10ListableUI21LocalizedItemCollatorV7collate9collation5itemsSayAC15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtFZ":{"name":"collate(collation:items:)","abstract":"

    Collates and returns the set of items into CollatedSections.","parent_name":"LocalizedItemCollator"},"Structs/LocalizedItemCollator.html#/s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ":{"name":"sections(collation:with:_:)","abstract":"

    Collates and returns the set of items into list Sections,","parent_name":"LocalizedItemCollator"},"Structs/LocalizedItemCollator/CollatedSection.html":{"name":"CollatedSection","abstract":"

    The output of the collator, with the collated title and items","parent_name":"LocalizedItemCollator"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV3oldShyAA13AnyIdentifierCGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV3newShyAA13AnyIdentifierCGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV3oldSo6CGRectVvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV3newSo6CGRectVvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV9displayedSayAA7AnyItem_pGvp":{"name":"displayed","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV12endedDisplaySayAA7AnyItem_pGvp":{"name":"endedDisplay","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV8insertedShyAA13AnyIdentifierCGvp":{"name":"inserted","abstract":"

    Undocumented

    ","parent_name":"ChangedIDs"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV7removedShyAA13AnyIdentifierCGvp":{"name":"removed","abstract":"

    Undocumented

    ","parent_name":"ChangedIDs"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV8sectionsAG10ChangedIDsVvp":{"name":"sections","abstract":"

    Undocumented

    ","parent_name":"InsertionsAndRemovals"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV5itemsAG10ChangedIDsVvp":{"name":"items","abstract":"

    Undocumented

    ","parent_name":"InsertionsAndRemovals"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html":{"name":"ChangedIDs","abstract":"

    Undocumented

    ","parent_name":"InsertionsAndRemovals"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV10hadChangesSbvp":{"name":"hadChanges","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21insertionsAndRemovalsAE010InsertionsiJ0Vvp":{"name":"insertionsAndRemovals","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html":{"name":"InsertionsAndRemovals","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/DidScroll.html#/s:10ListableUI17ListStateObserverV9DidScrollV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"DidScroll"},"Structs/ListStateObserver/DidScroll.html#/s:10ListableUI17ListStateObserverV9DidScrollV12positionInfoAA0cg8PositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"DidScroll"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates and optionally allows you to configure an observer.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV11OnDidScrolla":{"name":"OnDidScroll","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV11onDidScrollyyyAC0gH0VcF":{"name":"onDidScroll(_:)","abstract":"

    Registers a callback which will be called when the list view is scrolled, or is","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV16OnContentUpdateda":{"name":"OnContentUpdated","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV16onContentUpdatedyyyAC0gH0VcF":{"name":"onContentUpdated(_:)","abstract":"

    Registers a callback which will be called when the list view’s content is updated","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV19OnVisibilityChangeda":{"name":"OnVisibilityChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV19onVisibilityChangedyyyAC0gH0VcF":{"name":"onVisibilityChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s content is changed – eg through","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV14OnFrameChangeda":{"name":"OnFrameChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV14onFrameChangedyyyAC0gH0VcF":{"name":"onFrameChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s frame is changed.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV18OnSelectionChangeda":{"name":"OnSelectionChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV18onSelectionChangedyyyAC0gH0VcF":{"name":"onSelectionChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s selected items are changed by the user.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/DidScroll.html":{"name":"DidScroll","abstract":"

    Parameters available for OnDidScroll callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/ContentUpdated.html":{"name":"ContentUpdated","abstract":"

    Parameters available for OnContentUpdated callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/VisibilityChanged.html":{"name":"VisibilityChanged","abstract":"

    Parameters available for OnVisibilityChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/FrameChanged.html":{"name":"FrameChanged","abstract":"

    Parameters available for OnFrameChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/SelectionChanged.html":{"name":"SelectionChanged","abstract":"

    Parameters available for OnSelectionChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV12visibleItemsShyAA13AnyIdentifierCGvp":{"name":"visibleItems","abstract":"

    Which items within the list are currently visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV18isFirstItemVisibleSbvp":{"name":"isFirstItemVisible","abstract":"

    If the first item list is partially visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV17isLastItemVisibleSbvp":{"name":"isLastItemVisible","abstract":"

    If the last item list is partially visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV19visibleContentEdges017includingSafeAreaI0So10UIRectEdgeVAG_tF":{"name":"visibleContentEdges(includingSafeAreaEdges:)","abstract":"

    Used to retrieve the visible content edges for the list’s content.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV10scrollView12visibleItems18isFirstItemVisible0k4LastmN0ACSo08UIScrollH0C_ShyAA13AnyIdentifierCGS2btcfc":{"name":"init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)","abstract":"

    Creates a ListScrollPositionInfo for the provided scroll view.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV15animatesChangesSbvp":{"name":"animatesChanges","abstract":"

    If the changes applied should be animated or not.","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7contentAA7ContentVvp":{"name":"content","abstract":"

    The content displayed by the list.","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV11environmentAA0C11EnvironmentVvp":{"name":"environment","abstract":"

    The environment associated with the List.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV6layoutAA17LayoutDescriptionVvp":{"name":"layout","abstract":"

    The layout type to use with the list. Defaults to .table(), aka a table","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    The appearance to use with the list.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV21scrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"scrollIndicatorInsets","abstract":"

    The scroll insets to apply to the list view.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    The various behavior options to apply to the list, which affect how the user","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV13stateObserverAA0c5StateF0Vvp":{"name":"stateObserver","abstract":"

    The state reader to use with your list. A ListStateObserver","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7actionsAA0C7ActionsCSgvp":{"name":"actions","abstract":"

    The actions instance to use to control the list, eg to scroll to a given","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV16autoScrollActionAA04AutofG0Ovp":{"name":"autoScrollAction","abstract":"

    The auto scroll action to apply to the list. This allows you to","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV23accessibilityIdentifierSSSgvp":{"name":"accessibilityIdentifier","abstract":"

    The accessibility identifier assigned to the inner UICollectionView.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    The debugging identifier assigned to the list. Used for os_signpost integration","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7default4withACyACzXE_tFZ":{"name":"default(with:)","abstract":"

    An instance of ListProperties with sensible default values.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV15animatesChanges6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction23accessibilityIdentifier09debuggingQ05buildACSb_AA17LayoutDescriptionVAA10AppearanceVSo06UIEdgeK0VAA8BehaviorVAA04AutonO0OSSSgAWyACzXEtcfc":{"name":"init(animatesChanges:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:accessibilityIdentifier:debuggingIdentifier:build:)","abstract":"

    Create a new instance of ListProperties with the provided values.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV6modify5usingyyACzXE_tF":{"name":"modify(using:)","abstract":"

    Updates the ListProperties object with the changes in the provided builder.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV8modified5usingACyACzXE_tF":{"name":"modified(using:)","abstract":"

    Creates a new ListProperties object modified by the changes in the provided builder.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV3addyyAA7SectionVF":{"name":"add(_:)","abstract":"

    Adds a new section to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV2peoiyyACz_AA7SectionVtFZ":{"name":"+=(_:_:)","abstract":"

    Adds a new section to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV2peoiyyACz_SayAA7SectionVGtFZ":{"name":"+=(_:_:)","abstract":"

    Adds a list of new sections to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF":{"name":"callAsFunction(_:configure:)","abstract":"

    Allows streamlined creation of sections when building a list.

    ","parent_name":"ListProperties"},"Structs/ListEnvironment.html#/s:10ListableUI15ListEnvironmentV5emptyACvpZ":{"name":"empty","abstract":"

    A default “empty” environment, with no values overridden.","parent_name":"ListEnvironment"},"Structs/ListEnvironment.html#/s:10ListableUI15ListEnvironmentVy5ValueQzxmcAA0cD3KeyRzluip":{"name":"subscript(_:)","abstract":"

    Gets or sets an environment value by its key.

    ","parent_name":"ListEnvironment"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp":{"name":"padding","abstract":"

    The padding to place around the outside of the content of the list.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV5widthAA15WidthConstraintOvp":{"name":"width","abstract":"

    The width of the content of the list, which can be optionally constrained.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV27headerToFirstSectionSpacing12CoreGraphics7CGFloatVvp":{"name":"headerToFirstSectionSpacing","abstract":"

    The spacing between the list header and the first section.","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithNoFooter","abstract":"

    The spacing to apply between sections, if the previous section has no footer.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithFooter","abstract":"

    The spacing to apply between sections, if the previous section has a footer.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderBottomSpacing","abstract":"

    The spacing to apply below a section header, before its items.","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV11itemSpacing12CoreGraphics7CGFloatVvp":{"name":"itemSpacing","abstract":"

    The spacing between individual items within a section in a list.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"itemToSectionFooterSpacing","abstract":"

    The spacing between the last item in the section and the footer.","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV26lastSectionToFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"lastSectionToFooterSpacing","abstract":"

    The spacing between the last section and the footer of the list.","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV7padding5width27headerToFirstSectionSpacing05interkL12WithNoFooter0mklnP0019sectionHeaderBottomL004itemL00tikpL004lastkipL0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA6Utcfc":{"name":"init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)","abstract":"

    Creates a new Layout with the provided options.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Easily mutate the Layout in place.

    ","parent_name":"Layout"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV10itemHeight12CoreGraphics7CGFloatVvp":{"name":"itemHeight","abstract":"

    The default height for items in a list.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderHeight","abstract":"

    The default height for section headers in a list.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp":{"name":"sectionFooterHeight","abstract":"

    The default height for section footer in a list.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"listHeaderHeight","abstract":"

    The default height for the list’s header.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp":{"name":"listFooterHeight","abstract":"

    The default height for the list’s footer.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp":{"name":"overscrollFooterHeight","abstract":"

    The default height for the list’s overscroll footer.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV26itemPositionGroupingHeight12CoreGraphics7CGFloatVvp":{"name":"itemPositionGroupingHeight","abstract":"

    When providing the ItemPosition for items in a list, specifies the max spacing","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV10itemHeight013sectionHeaderG00h6FooterG004listiG00kjG0010overscrolljG00f16PositionGroupingG0AE12CoreGraphics7CGFloatV_A6Otcfc":{"name":"init(itemHeight:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:itemPositionGroupingHeight:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/TableAppearance/SectionLayout/Columns.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5countSivp":{"name":"count","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/TableAppearance/SectionLayout/Columns.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV7spacing12CoreGraphics7CGFloatVvp":{"name":"spacing","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/TableAppearance/SectionLayout/Columns.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV3oneAGvpZ":{"name":"one","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/TableAppearance/SectionLayout/Columns.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5count7spacingAGSi_12CoreGraphics7CGFloatVtcfc":{"name":"init(count:spacing:)","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV011customInterE7Spacing12CoreGraphics7CGFloatVSgvp":{"name":"customInterSectionSpacing","abstract":"

    Overrides the calculated spacing after this section

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7columnsAE7ColumnsVvp":{"name":"columns","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV5width011customInterE7Spacing7columnsAeA11CustomWidthO_12CoreGraphics7CGFloatVSgAE7ColumnsVtcfc":{"name":"init(width:customInterSectionSpacing:columns:)","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout/Columns.html":{"name":"Columns","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/HeaderFooterLayout.html#/s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/TableAppearance/HeaderFooterLayout.html#/s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV5widthAeA11CustomWidthO_tcfc":{"name":"init(width:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/TableAppearance/HeaderFooterLayout.html#/s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ":{"name":"defaultValue","parent_name":"HeaderFooterLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI15TableAppearanceV10ItemLayoutV11itemSpacing12CoreGraphics7CGFloatVSgvp":{"name":"itemSpacing","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI15TableAppearanceV10ItemLayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVSgvp":{"name":"itemToSectionFooterSpacing","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI15TableAppearanceV10ItemLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI15TableAppearanceV10ItemLayoutV11itemSpacing0g15ToSectionFooterH05widthAE12CoreGraphics7CGFloatVSg_AlA11CustomWidthOtcfc":{"name":"init(itemSpacing:itemToSectionFooterSpacing:width:)","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","parent_name":"ItemLayout"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV6sizingAC6SizingVvp":{"name":"sizing","abstract":"

    Default sizing attributes for content in the list.

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    Layout attributes for content in the list.

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc":{"name":"init(stickySectionHeaders:sizing:layout:)","abstract":"

    Creates a new TableAppearance object.

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/ItemLayout.html":{"name":"ItemLayout","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/HeaderFooterLayout.html":{"name":"HeaderFooterLayout","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/SectionLayout.html":{"name":"SectionLayout","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/Sizing.html":{"name":"Sizing","abstract":"

    Sizing options for the list.

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/Layout.html":{"name":"Layout","abstract":"

    Layout options for the list.

    ","parent_name":"TableAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    The direction the paging layout should occur in. Defaults to vertical.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp":{"name":"showsScrollIndicators","abstract":"

    If scroll indicators should be visible along the scrollable axis.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV10itemInsetsSo06UIEdgeF0Vvp":{"name":"itemInsets","abstract":"

    How far each item in the list should be inset from the edges of the view.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV9direction21showsScrollIndicators10itemInsetsAcA15LayoutDirectionO_SbSo06UIEdgeJ0Vtcfc":{"name":"init(direction:showsScrollIndicators:itemInsets:)","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV5width12CoreGraphics7CGFloatVvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV6height12CoreGraphics7CGFloatVvp":{"name":"height","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV7rotatesSbvp":{"name":"rotates","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV5width6height7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc":{"name":"init(width:height:rotates:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV12CGPointValue3forSo6CGSizeVAA0D9DirectionO_tF":{"name":"CGPointValue(for:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1x12CoreGraphics7CGFloatVvp":{"name":"x","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1y12CoreGraphics7CGFloatVvp":{"name":"y","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV7rotatesSbvp":{"name":"rotates","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1x1y7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc":{"name":"init(x:y:rotates:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV12CGPointValue3forSo0F0VAA0D9DirectionO_tF":{"name":"CGPointValue(for:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO9automaticyA2EmF":{"name":"automatic","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2EmF":{"name":"scrollableAxes","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO5neveryA2EmF":{"name":"never","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO6alwaysyA2EmF":{"name":"always","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabledSbvp":{"name":"isPagingEnabled","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30contentInsetAdjustmentBehaviorAC07ContentijK0Ovp":{"name":"contentInsetAdjustmentBehavior","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV20allowsBounceVerticalSbvp":{"name":"allowsBounceVertical","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV22allowsBounceHorizontalSbvp":{"name":"allowsBounceHorizontal","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV016allowsHorizontalE9IndicatorSbvp":{"name":"allowsHorizontalScrollIndicator","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV014allowsVerticalE9IndicatorSbvp":{"name":"allowsVerticalScrollIndicator","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabled30contentInsetAdjustmentBehavior20allowsBounceVertical0oP10Horizontal0oqE9Indicator0oreS0ACSb_AC07ContentlmN0OS4btcfc":{"name":"init(isPagingEnabled:contentInsetAdjustmentBehavior:allowsBounceVertical:allowsBounceHorizontal:allowsVerticalScrollIndicator:allowsHorizontalScrollIndicator:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html":{"name":"ContentInsetAdjustmentBehavior","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutDefaults.html#/s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAA04ItemghiJ0Vvp":{"name":"itemInsertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"ListLayoutDefaults"},"Structs/ListLayoutDefaults.html#/s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAcA04ItemghiJ0V_tcfc":{"name":"init(itemInsertAndRemoveAnimations:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutDefaults"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV7SectionV":{"name":"Section","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV13SupplementaryV":{"name":"Supplementary","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV4ItemV":{"name":"Item","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/SectionLayouts.html#/s:10ListableUI14SectionLayoutsVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates a new instance of the layouts, with an optional configure","parent_name":"SectionLayouts"},"Structs/SectionLayouts.html#/s:10ListableUI14SectionLayoutsVyxxmcAA0cD5ValueRzluip":{"name":"subscript(_:)","abstract":"

    Allows accessing the various SectionLayoutsValues stored within the object.","parent_name":"SectionLayouts"},"Structs/SectionLayouts.html#/s:10ListableUI14SectionLayoutsV4gridAA14GridAppearanceV0C6LayoutVvp":{"name":"grid","abstract":"

    Undocumented

    ","parent_name":"SectionLayouts"},"Structs/SectionLayouts.html#/s:10ListableUI14SectionLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp":{"name":"table","abstract":"

    Allows customization of a Section‘s layout when it is presented within a .table style layout.

    ","parent_name":"SectionLayouts"},"Structs/GridAppearance/SectionLayout.html#/s:10ListableUI14GridAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/GridAppearance/SectionLayout.html#/s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","parent_name":"SectionLayout"},"Structs/GridAppearance/SectionLayout.html#/s:10ListableUI14GridAppearanceV13SectionLayoutV5widthAeA11CustomWidthO_tcfc":{"name":"init(width:)","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/GridAppearance/HeaderFooterLayout.html#/s:10ListableUI14GridAppearanceV18HeaderFooterLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/GridAppearance/HeaderFooterLayout.html#/s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ":{"name":"defaultValue","parent_name":"HeaderFooterLayout"},"Structs/GridAppearance/HeaderFooterLayout.html#/s:10ListableUI14GridAppearanceV18HeaderFooterLayoutV5widthAeA11CustomWidthO_tcfc":{"name":"init(width:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/GridAppearance/ItemLayout.html#/s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","parent_name":"ItemLayout"},"Structs/GridAppearance/ItemLayout.html#/s:10ListableUI14GridAppearanceV10ItemLayoutVAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp":{"name":"padding","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV5widthAA15WidthConstraintOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithNoFooter","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithFooter","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderBottomSpacing","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"itemToSectionFooterSpacing","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV7padding5width31interSectionSpacingWithNoFooter0hijkM0019sectionHeaderBottomJ006itemToimJ0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA3Rtcfc":{"name":"init(padding:width:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemToSectionFooterSpacing:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Sizing/ItemSize.html#/s:10ListableUI14GridAppearanceV6SizingV8ItemSizeO5fixedyAGSo6CGSizeVcAGmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"ItemSize"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV8itemSizeAE04ItemG0Ovp":{"name":"itemSize","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing/ItemSize.html":{"name":"ItemSize","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp":{"name":"sectionFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"listHeaderHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp":{"name":"listFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp":{"name":"overscrollFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV8itemSize19sectionHeaderHeight0h6FooterJ004listiJ00lkJ0010overscrollkJ0A2E04ItemG0O_12CoreGraphics7CGFloatVA4Ptcfc":{"name":"init(itemSize:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV6sizingAC6SizingVvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc":{"name":"init(stickySectionHeaders:sizing:layout:)","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/Sizing.html":{"name":"Sizing","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/Layout.html":{"name":"Layout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/ItemLayout.html":{"name":"ItemLayout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/HeaderFooterLayout.html":{"name":"HeaderFooterLayout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/SectionLayout.html":{"name":"SectionLayout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzctcAA04ListC0Rzlufc":{"name":"init(layoutType:appearance:)","abstract":"

    Creates a new layout description for the provided layout type, with the provided optional layout configuration.

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV17experimental_gridyACyAA14GridAppearanceVzcFZ":{"name":"experimental_grid(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV5pagedyACyAA15PagedAppearanceVzcFZ":{"name":"paged(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV5tableyACyAA15TableAppearanceVzcFZ":{"name":"table(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV11fromSectionAA0F0Vvp":{"name":"fromSection","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV13fromIndexPath10Foundation0fG0Vvp":{"name":"fromIndexPath","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV9toSectionAA0F0Vvp":{"name":"toSection","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV11toIndexPath10Foundation0fG0Vvp":{"name":"toIndexPath","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Sections.html#/s:10ListableUI10ReorderingV8SectionsO4sameyA2EmF":{"name":"same","abstract":"

    Undocumented

    ","parent_name":"Sections"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV8sectionsAC8SectionsOvp":{"name":"sections","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10CanReordera":{"name":"CanReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10canReorderSbAC6ResultVcSgvp":{"name":"canReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10DidReordera":{"name":"DidReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10didReorderyyAC6ResultVcvp":{"name":"didReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV8sections10canReorder03didF0A2C8SectionsO_SbAC6ResultVcSgyAJctcfc":{"name":"init(sections:canReorder:didReorder:)","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering/Sections.html":{"name":"Sections","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering/Result.html":{"name":"Result","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV10isSelected0E11HighlightedACSb_Sbtcfc":{"name":"init(isSelected:isHighlighted:)","abstract":"

    Undocumented

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV4cellACSo20UICollectionViewCellC_tcfc":{"name":"init(cell:)","abstract":"

    Undocumented

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV10isSelectedSbvp":{"name":"isSelected","abstract":"

    If the item is currently selected.

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV13isHighlightedSbvp":{"name":"isHighlighted","abstract":"

    If the item is currently highlighted.

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV8isActiveSbvp":{"name":"isActive","abstract":"

    If the item is either selected or highlighted.

    ","parent_name":"ItemState"},"Structs/ItemLayouts.html#/s:10ListableUI11ItemLayoutsVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates a new instance of the layouts, with an optional configure","parent_name":"ItemLayouts"},"Structs/ItemLayouts.html#/s:10ListableUI11ItemLayoutsVyxxmcAA0cD5ValueRzluip":{"name":"subscript(_:)","abstract":"

    Allows accessing the various ItemLayoutsValues stored within the object.","parent_name":"ItemLayouts"},"Structs/ItemLayouts.html#/s:10ListableUI11ItemLayoutsV4gridAA14GridAppearanceV0C6LayoutVvp":{"name":"grid","abstract":"

    Undocumented

    ","parent_name":"ItemLayouts"},"Structs/ItemLayouts.html#/s:10ListableUI11ItemLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp":{"name":"table","abstract":"

    Allows customization of an Item‘s layout when it is presented within a .table style layout.

    ","parent_name":"ItemLayouts"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6boundsSo6CGRectVvp":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6centerSo7CGPointVvp":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV9transformSo17CGAffineTransformVvp":{"name":"transform","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV11transform3DSo13CATransform3DVvp":{"name":"transform3D","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV5alpha12CoreGraphics7CGFloatVvp":{"name":"alpha","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6zIndexSivp":{"name":"zIndex","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV5frameSo6CGRectVvp":{"name":"frame","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV7Preparea":{"name":"Prepare","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV02onD0yyAC10AttributesVzcvp":{"name":"onInsert","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV9onRemovalyyAC10AttributesVzcvp":{"name":"onRemoval","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV02onD00H7RemovalACyAC10AttributesVzc_yAGzctcfc":{"name":"init(onInsert:onRemoval:)","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10attributesACyAC10AttributesVzc_tcfc":{"name":"init(attributes:)","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html":{"name":"Attributes","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV4fadeACvpZ":{"name":"fade","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV5rightACvpZ":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV4leftACvpZ":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV3topACvpZ":{"name":"top","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV6bottomACvpZ":{"name":"bottom","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV9scaleDownACvpZ":{"name":"scaleDown","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV7scaleUpACvpZ":{"name":"scaleUp","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV5stateAA0D5StateVvp":{"name":"state","abstract":"

    The state of the Item currently displaying the content. Is it highlighted, selected, etc.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV8positionAA0D8PositionOvp":{"name":"position","abstract":"

    The position of the item within its section.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV10reorderingAA17ReorderingActionsCvp":{"name":"reordering","abstract":"

    Provides access to actions to handle re-ordering the content within the list.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV11environmentAA15ListEnvironmentVvp":{"name":"environment","abstract":"

    The environment of the containing list.","parent_name":"ApplyItemContentInfo"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV7content0D4ViewQzvp":{"name":"content","abstract":"

    The content view of the content.

    ","parent_name":"ItemContentViews"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV10background14BackgroundViewQzvp":{"name":"background","abstract":"

    The background view of the content.

    ","parent_name":"ItemContentViews"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV18selectedBackground08SelectedG4ViewQzvp":{"name":"selectedBackground","abstract":"

    The selected background view of the content.","parent_name":"ItemContentViews"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6sizingAA6SizingOSgvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV7layoutsAA0D7LayoutsVSgvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV14selectionStyleAA0d9SelectionG0OSgvp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV25insertAndRemoveAnimationsAA0d6InsertghI0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV12swipeActionsAA05SwipeG13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6sizing7layouts14selectionStyle25insertAndRemoveAnimations12swipeActionsACyxGAA6SizingOSg_AA0D7LayoutsVSgAA0d9SelectionI0OSgAA0d6InsertklM0VSgAA05SwipeO13ConfigurationVSgtcfc":{"name":"init(sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:)","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/HeaderFooterLayouts.html#/s:10ListableUI19HeaderFooterLayoutsVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates a new instance of the layouts, with an optional configure","parent_name":"HeaderFooterLayouts"},"Structs/HeaderFooterLayouts.html#/s:10ListableUI19HeaderFooterLayoutsVyxxmcAA0cdE5ValueRzluip":{"name":"subscript(_:)","abstract":"

    Allows accessing the various HeaderFooterLayoutValues stored within the object.","parent_name":"HeaderFooterLayouts"},"Structs/HeaderFooterLayouts.html#/s:10ListableUI19HeaderFooterLayoutsV4gridAA14GridAppearanceV0cD6LayoutVvp":{"name":"grid","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayouts"},"Structs/HeaderFooterLayouts.html#/s:10ListableUI19HeaderFooterLayoutsV5tableAA15TableAppearanceV0cD6LayoutVvp":{"name":"table","abstract":"

    Allows customization of a HeaderFooter‘s layout when it is presented within a .table style layout.

    ","parent_name":"HeaderFooterLayouts"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV7content0E4ViewQzvp":{"name":"content","abstract":"

    The content view of the content.

    ","parent_name":"HeaderFooterContentViews"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV10background14BackgroundViewQzvp":{"name":"background","abstract":"

    The background view of the content.

    ","parent_name":"HeaderFooterContentViews"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV7pressed21PressedBackgroundViewQzvp":{"name":"pressed","abstract":"

    The background view of the content that’s displayed while a press is active.

    ","parent_name":"HeaderFooterContentViews"},"Structs/ApplyHeaderFooterContentInfo.html#/s:10ListableUI28ApplyHeaderFooterContentInfoV11environmentAA15ListEnvironmentVvp":{"name":"environment","abstract":"

    The environment of the containing list.","parent_name":"ApplyHeaderFooterContentInfo"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV7contentxvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV7layoutsAA0cD7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5OnTapa":{"name":"OnTap","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5onTapyxcSgvp":{"name":"onTap","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV_5buildACyxGx_yAEzXEtcfc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV_6sizing7layouts5onTapACyxGx_AA6SizingOAA0cD7LayoutsVyxcSgtcfc":{"name":"init(_:sizing:layouts:onTap:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0jcD11ContentInfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV15anyIsEquivalent2toSbAA03AnycD0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV015newPresentationcD5State24performsContentCallbacksypSb_tF":{"name":"newPresentationHeaderFooterState(performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/EmbeddedList/Sizing.html#/s:10ListableUI12EmbeddedListV6SizingO7defaultyA2EmF":{"name":"default","abstract":"

    Falls back to the default sizing of Items in the list view.

    ","parent_name":"Sizing"},"Structs/EmbeddedList/Sizing.html#/s:10ListableUI12EmbeddedListV6SizingO5fixedyAE12CoreGraphics7CGFloatV_AItcAEmF":{"name":"fixed(width:height:)","abstract":"

    A fixed size item with the given width or height.

    ","parent_name":"Sizing"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV10propertiesAA0D10PropertiesVvp":{"name":"properties","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV17contentIdentifiers11AnyHashableVvp":{"name":"contentIdentifier","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV10identifier5buildACx_yAA0D10PropertiesVzXEtcSHRzlufc":{"name":"init(identifier:build:)","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP0D4ViewQa":{"name":"ContentView","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp":{"name":"identifier","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF":{"name":"apply(to:for:with:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList/Sizing.html":{"name":"Sizing","abstract":"

    How you specify sizing for an embedded list. The surface area","parent_name":"EmbeddedList"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV3oldACyxGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV3newACyxGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV3oldACyxGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV3newACyxGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnRemove.html#/s:10ListableUI4ItemV8OnRemoveV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnRemove"},"Structs/Item/OnRemove.html#/s:10ListableUI4ItemV8OnRemoveV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnRemove"},"Structs/Item/OnInsert.html#/s:10ListableUI4ItemV8OnInsertV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnInsert"},"Structs/Item/OnInsert.html#/s:10ListableUI4ItemV8OnInsertV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnInsert"},"Structs/Item/OnDeselect.html#/s:10ListableUI4ItemV10OnDeselectV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnDeselect"},"Structs/Item/OnDeselect.html#/s:10ListableUI4ItemV10OnDeselectV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnDeselect"},"Structs/Item/OnSelect.html#/s:10ListableUI4ItemV8OnSelectV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnSelect"},"Structs/Item/OnSelect.html#/s:10ListableUI4ItemV8OnSelectV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnSelect"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV07isFirsteF0Sbvp":{"name":"isFirstEndDisplay","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV07isFirstE0Sbvp":{"name":"isFirstDisplay","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item.html#/s:10ListableUI4ItemV10identifierAA13AnyIdentifierCvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV7contentxvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV7layoutsAA0C7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV14selectionStyleAA0c9SelectionE0Ovp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV25insertAndRemoveAnimationsAA0c6InsertefG0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV12swipeActionsAA05SwipeE13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10reorderingAA10ReorderingVSgvp":{"name":"reordering","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV9onDisplayyAC02OnE0Vyx_GcSgvp":{"name":"onDisplay","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV12onEndDisplayyAC02OneF0Vyx_GcSgvp":{"name":"onEndDisplay","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onSelectyAC02OnE0Vyx_GcSgvp":{"name":"onSelect","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10onDeselectyAC02OnE0Vyx_GcSgvp":{"name":"onDeselect","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onInsertyAC02OnE0Vyx_GcSgvp":{"name":"onInsert","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onRemoveyAC02OnE0Vyx_GcSgvp":{"name":"onRemove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6onMoveyAC02OnE0Vyx_GcSgvp":{"name":"onMove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onUpdateyAC02OnE0Vyx_GcSgvp":{"name":"onUpdate","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV_5buildACyxGx_yAEzXEtcfc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV_6sizing7layouts14selectionStyle25insertAndRemoveAnimations12swipeActions10reordering9onDisplay0o3EndP00O6Select0O8Deselect0O6Insert0oJ00O4Move0O6UpdateACyxGx_AA6SizingOSgAA0C7LayoutsVSgAA0c9SelectionG0OSgAA0ctijK0VSgAA05SwipeM13ConfigurationVSgAA10ReorderingVSgyAC02OnP0Vyx_GcSgyAC02OnqP0Vyx_GcSgyAC02OnR0Vyx_GcSgyAC02OnS0Vyx_GcSgyAC02OnT0Vyx_GcSgyAC02OnJ0Vyx_GcSgyAC02OnU0Vyx_GcSgyAC02OnV0Vyx_GcSgtcfc":{"name":"init(_:sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10anyContentypvp":{"name":"anyContent","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV15anyIsEquivalent2toSbAA03AnyC0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV11anyWasMoved10comparedToSbAA03AnyC0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV015newPresentationC5State4with15updateCallbacks015performsContentI0ypAA0cF12DependenciesV_AA06UpdateI0CSbtF":{"name":"newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnDisplay.html":{"name":"OnDisplay","abstract":"

    Value passed to the onDisplay callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnEndDisplay.html":{"name":"OnEndDisplay","abstract":"

    Value passed to the onEndDisplay callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnSelect.html":{"name":"OnSelect","abstract":"

    Value passed to the onSelect callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnDeselect.html":{"name":"OnDeselect","abstract":"

    Value passed to the onDeselect callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnInsert.html":{"name":"OnInsert","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnRemove.html":{"name":"OnRemove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnMove.html":{"name":"OnMove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnUpdate.html":{"name":"OnUpdate","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemVA2A12EmbeddedListVRszrlE4list_6sizing5buildACyAEGqd___AE6SizingOyAA0E10PropertiesVzXEtSHRd__lFZ":{"name":"list(_:sizing:build:)","abstract":"

    Creates an Item which can be used to embed a list inside another list,","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemVA2A019LocalizedCollatableC7ContentRzrlE15collationStringSSvp":{"name":"collationString","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Content.html#/s:10ListableUI7ContentV10identifiers11AnyHashableVSgvp":{"name":"identifier","abstract":"

    The identifier for the content, defaults to nil.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14refreshControlAA07RefreshE0VSgvp":{"name":"refreshControl","abstract":"

    The refresh control, if any, associated with the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV6headerAA15AnyHeaderFooter_pSgvp":{"name":"header","abstract":"

    The header for the list, usually displayed before all other content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV6footerAA15AnyHeaderFooter_pSgvp":{"name":"footer","abstract":"

    The footer for the list, usually displayed after all other content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV16overscrollFooterAA09AnyHeaderE0_pSgvp":{"name":"overscrollFooter","abstract":"

    The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame,","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8sectionsSayAA7SectionVGvp":{"name":"sections","abstract":"

    All sections in the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV16nonEmptySectionsSayAA7SectionVGvp":{"name":"nonEmptySections","abstract":"

    Any sections that have a non-zero number of items.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV9itemCountSivp":{"name":"itemCount","abstract":"

    The total number of items in all of the sections in the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8contains3anySbShyAA0C7FiltersOG_tF":{"name":"contains(any:)","abstract":"

    Check if the content contains any of the given types, which you specify via the filters","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV4withACyACzXE_tcfc":{"name":"init(with:)","abstract":"

    Creates a new instance, configured as needed via the provided builder block.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV10identifier14refreshControl6header6footer16overscrollFooter8sectionsACs11AnyHashableVSg_AA07RefreshF0VSgAA0l6HeaderJ0_pSgA2QSayAA7SectionVGtcfc":{"name":"init(identifier:refreshControl:header:footer:overscrollFooter:sections:)","abstract":"

    Creates a new instance with the provided parameters.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV9firstItemAA03AnyE0_pSgvp":{"name":"firstItem","abstract":"

    The first Item in the content. Returns nil if there is no content in any section.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8lastItemAA03AnyE0_pSgvp":{"name":"lastItem","abstract":"

    The last Item in the content. Returns nil if there is no content in any section.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns the Item at the given IndexPath.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14firstIndexPath3for10Foundation0eF0VSgAA13AnyIdentifierC_tF":{"name":"firstIndexPath(for:)","abstract":"

    Returns the first IndexPath for the contained Item with the given AnyIdentifier,","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV13lastIndexPath10Foundation0eF0VSgyF":{"name":"lastIndexPath()","abstract":"

    Returns the IndexPath of the last Item in the content.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV11removeEmptyyyF":{"name":"removeEmpty()","abstract":"

    Removes all Sections that do not contain any Items.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV3addyyAA7SectionVF":{"name":"add(_:)","abstract":"

    Appends a Section to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV2peoiyyACz_AA7SectionVtFZ":{"name":"+=(_:_:)","abstract":"

    Appends a Section to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV2peoiyyACz_SayAA7SectionVGtFZ":{"name":"+=(_:_:)","abstract":"

    Appends a list of Sections to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF":{"name":"callAsFunction(_:configure:)","abstract":"

    Allows streamlined creation of sections when building a list, leveraging Swift’s callAsFunction","parent_name":"Content"},"Structs/Color.html#/s:10ListableUI5ColorV12wrappedValueSo7UIColorCvp":{"name":"wrappedValue","abstract":"

    The underlying color value.

    ","parent_name":"Color"},"Structs/Color.html#/s:10ListableUI5ColorVyACSo7UIColorCcfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"Color"},"Structs/Color.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Color"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO3topyA2GmF":{"name":"top","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6centeryA2GmF":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6bottomyA2GmF":{"name":"bottom","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV12alwaysBounceSbvp":{"name":"alwaysBounce","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV9alignmentAE9AlignmentOvp":{"name":"alignment","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV12alwaysBounce9alignmentAESb_AE9AlignmentOtcfc":{"name":"init(alwaysBounce:alignment:)","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow/Alignment.html":{"name":"Alignment","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF":{"name":"none","abstract":"

    The list view does not allow any selections.

    ","parent_name":"SelectionMode"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO6singleyAESb_tcAEmF":{"name":"single(clearsSelectionOnViewWillAppear:)","abstract":"

    The list view allows single selections. When an item is selected, the previously selected item (if any)","parent_name":"SelectionMode"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF":{"name":"multiple","abstract":"

    The list view allows multiple selections. It is your responsibility to update the content","parent_name":"SelectionMode"},"Structs/Behavior/ScrollsToTop.html#/s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF":{"name":"disabled","abstract":"

    No action is performed when the user taps on the status bar.

    ","parent_name":"ScrollsToTop"},"Structs/Behavior/ScrollsToTop.html#/s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF":{"name":"enabled","abstract":"

    When the user taps on the status bar, scroll to the top of the list.

    ","parent_name":"ScrollsToTop"},"Structs/Behavior/KeyboardAdjustmentMode.html#/s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF":{"name":"none","abstract":"

    The contentInset of the list is not adjusted when the keyboard appears or disappears.

    ","parent_name":"KeyboardAdjustmentMode"},"Structs/Behavior/KeyboardAdjustmentMode.html#/s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF":{"name":"adjustsWhenVisible","abstract":"

    The contentInset of the list is adjusted when the keyboard appears or disappears.

    ","parent_name":"KeyboardAdjustmentMode"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp":{"name":"keyboardDismissMode","abstract":"

    How the keyboard should be dismissed (if at all) based on scrolling of the list view.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp":{"name":"keyboardAdjustmentMode","abstract":"

    How to adjust the contentInset of the list when the keyboard visibility changes.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp":{"name":"scrollsToTop","abstract":"

    How the list should react when the user taps the application status bar.","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp":{"name":"selectionMode","abstract":"

    How the list should respond to selection attempts.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp":{"name":"underflow","abstract":"

    How the list should behave when its content takes up less space than is available in the list view.","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp":{"name":"canCancelContentTouches","abstract":"

    A Boolean value that controls whether touches in the content view always lead to tracking.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV20delaysContentTouchesSbvp":{"name":"delaysContentTouches","abstract":"

    A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV15isPagingEnabledSbvp":{"name":"isPagingEnabled","abstract":"

    Is paging enabled on the underlying scroll view.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP015isPagingEnabledACSo020UIScrollViewKeyboardeF0V_AC0wgF0OAC07ScrollsiJ0OAC09SelectionF0OAC9UnderflowVS3btcfc":{"name":"init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:)","abstract":"

    Creates a new Behavior based on the provided parameters.

    ","parent_name":"Behavior"},"Structs/Behavior/KeyboardAdjustmentMode.html":{"name":"KeyboardAdjustmentMode","abstract":"

    How to adjust the contentInset of the list when the keyboard visibility changes.

    ","parent_name":"Behavior"},"Structs/Behavior/ScrollsToTop.html":{"name":"ScrollsToTop","abstract":"

    How to react when the user taps on the status bar of the application.

    ","parent_name":"Behavior"},"Structs/Behavior/SelectionMode.html":{"name":"SelectionMode","abstract":"

    The selection mode of the list view, which controls how many items (if any) can be selected at once.

    ","parent_name":"Behavior"},"Structs/Behavior/Underflow.html":{"name":"Underflow","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV15backgroundColorSo7UIColorCvp":{"name":"backgroundColor","abstract":"

    The background color for the list.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV21showsScrollIndicatorsSbvp":{"name":"showsScrollIndicators","abstract":"

    If the list should display its scroll indicators.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV15backgroundColor21showsScrollIndicators9configureACSo7UIColorC_SbyACzXEtcfc":{"name":"init(backgroundColor:showsScrollIndicators:configure:)","abstract":"

    Creates a new appearance object with the provided options.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV22defaultBackgroundColorSo7UIColorCvpZ":{"name":"defaultBackgroundColor","abstract":"

    The default background color for the Appearance.

    ","parent_name":"Appearance"},"Structs/Appearance.html":{"name":"Appearance","abstract":"

    Contains all the properties which affect the appearance of all possible kinds of list layouts.

    "},"Structs/Behavior.html":{"name":"Behavior","abstract":"

    Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior"},"Structs/Color.html":{"name":"Color","abstract":"

    A color wrapper which provides equatability for"},"Structs/Content.html":{"name":"Content","abstract":"

    Undocumented

    "},"Structs/Item.html":{"name":"Item","abstract":"

    Undocumented

    "},"Structs/EmbeddedList.html":{"name":"EmbeddedList","abstract":"

    Describes item content which can be used to embed a list inside another list,"},"Structs/HeaderFooter.html":{"name":"HeaderFooter","abstract":"

    Undocumented

    "},"Structs/ApplyHeaderFooterContentInfo.html":{"name":"ApplyHeaderFooterContentInfo","abstract":"

    Information about the current state of the content, which is passed to apply(to:for:with:)"},"Structs/HeaderFooterContentViews.html":{"name":"HeaderFooterContentViews","abstract":"

    The views owned by the item content, passed to the apply(to:) method to theme and provide content.

    "},"Structs/HeaderFooterLayouts.html":{"name":"HeaderFooterLayouts","abstract":"

    HeaderFooterLayouts allows you to provide ListLayout-specific layout configuration for"},"Structs.html#/s:10ListableUI21ItemStateDependenciesV":{"name":"ItemStateDependencies","abstract":"

    Undocumented

    "},"Structs/DefaultItemProperties.html":{"name":"DefaultItemProperties","abstract":"

    Allows specifying default properties to apply to an item when it is initialized,"},"Structs/ItemContentViews.html":{"name":"ItemContentViews","abstract":"

    The views owned by the item content, passed to the apply(to:) method to theme and provide content.

    "},"Structs/ApplyItemContentInfo.html":{"name":"ApplyItemContentInfo","abstract":"

    Information about the current state of the content, which is passed to apply(to:for:with:)"},"Structs/ItemInsertAndRemoveAnimations.html":{"name":"ItemInsertAndRemoveAnimations","abstract":"

    Undocumented

    "},"Structs/ItemLayouts.html":{"name":"ItemLayouts","abstract":"

    ItemLayouts allows you to provide ListLayout-specific layout configuration for"},"Structs/ItemState.html":{"name":"ItemState","abstract":"

    Undocumented

    "},"Structs/Reordering.html":{"name":"Reordering","abstract":"

    Undocumented

    "},"Structs/LayoutDescription.html":{"name":"LayoutDescription","abstract":"

    A LayoutDescription, well, describes the type of and properties of a layout to apply to a list view.

    "},"Structs/GridAppearance.html":{"name":"GridAppearance","abstract":"

    Undocumented

    "},"Structs/SectionLayouts.html":{"name":"SectionLayouts","abstract":"

    SectionLayouts allows you to provide ListLayout-specific layout configuration for"},"Structs/ListLayoutAttributes.html":{"name":"ListLayoutAttributes","abstract":"

    Undocumented

    "},"Structs/ListLayoutDefaults.html":{"name":"ListLayoutDefaults","abstract":"

    Undocumented

    "},"Structs/ListLayoutScrollViewProperties.html":{"name":"ListLayoutScrollViewProperties","abstract":"

    Undocumented

    "},"Structs/ListLayoutPoint.html":{"name":"ListLayoutPoint","abstract":"

    Undocumented

    "},"Structs/ListLayoutSize.html":{"name":"ListLayoutSize","abstract":"

    Undocumented

    "},"Structs/PagedAppearance.html":{"name":"PagedAppearance","abstract":"

    Describes the available appearance configuration options for a paged list layout."},"Structs/TableAppearance.html":{"name":"TableAppearance","abstract":"

    TableAppearance defines the appearance and layout attribute for list layouts within a Listable list.

    "},"Structs/ListEnvironment.html":{"name":"ListEnvironment","abstract":"

    An environment of keys and values that are passed to every ItemContent and HeaderFooter"},"Structs/ListProperties.html":{"name":"ListProperties","abstract":"

    The ListProperties object describes all of the given values needed to configure"},"Structs/ListScrollPositionInfo.html":{"name":"ListScrollPositionInfo","abstract":"

    Information about the current scroll position of a list,"},"Structs/ListStateObserver.html":{"name":"ListStateObserver","abstract":"

    Allows reading state and events based on state changes within the list view."},"Structs/LocalizedItemCollator.html":{"name":"LocalizedItemCollator","abstract":"

    If you’re looking for the equivalent of UILocalizedIndexedCollation for lists,"},"Structs/ItemPreview.html":{"name":"ItemPreview","abstract":"

    A SwiftUI view that you can use to preview your Item or ItemContent"},"Structs/ItemPreviewAppearance.html":{"name":"ItemPreviewAppearance","abstract":"

    The appearance options for a preview item.

    "},"Structs/RefreshControl.html":{"name":"RefreshControl","abstract":"

    Undocumented

    "},"Structs/ScrollPosition.html":{"name":"ScrollPosition","abstract":"

    Specifies how to position an item in a list when requesting the list scrolls to it.

    "},"Structs/Section.html":{"name":"Section","abstract":"

    Undocumented

    "},"Structs/HorizontalPadding.html":{"name":"HorizontalPadding","abstract":"

    Undocumented

    "},"Structs/SwipeActionsConfiguration.html":{"name":"SwipeActionsConfiguration","abstract":"

    Use SwipeActionsConfiguration to configure an item with SwipeActions."},"Structs/SwipeAction.html":{"name":"SwipeAction","abstract":"

    Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.

    "},"Protocols/SectionLayoutsValue.html#/s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","abstract":"

    The default value used when accessing the value, if none is set.

    ","parent_name":"SectionLayoutsValue"},"Protocols/AnySectionInfo.html#/s:10ListableUI14AnySectionInfoP13anyIdentifierAA0cG0Cvp":{"name":"anyIdentifier","abstract":"

    Undocumented

    ","parent_name":"AnySectionInfo"},"Protocols/AnySectionInfo.html#/s:10ListableUI14AnySectionInfoP11anyWasMoved10comparedToSbAaB_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"AnySectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoP10identifierAA10IdentifierCyxGvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoP8wasMoved10comparedToSbx_tF":{"name":"wasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoPAAE13anyIdentifierAA03AnyF0Cvp":{"name":"anyIdentifier","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoPAAE11anyWasMoved10comparedToSbAA03AnycD0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/AnyLocalizedCollatableItem.html#/s:10ListableUI26AnyLocalizedCollatableItemP15collationStringSSvp":{"name":"collationString","abstract":"

    Undocumented

    ","parent_name":"AnyLocalizedCollatableItem"},"Protocols/LocalizedCollatableItemContent.html#/s:10ListableUI30LocalizedCollatableItemContentP15collationStringSSvp":{"name":"collationString","abstract":"

    A string that represents the primary content of your ItemContent; usually a name or title.

    ","parent_name":"LocalizedCollatableItemContent"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP5StateQa":{"name":"State","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP7content4withADyAA0E5StateCy0H0QzG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP7content4withAA7ContentVAA0E5StateCy0I0QzG_tF":{"name":"content(with:)","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListEnvironmentKey.html#/s:10ListableUI18ListEnvironmentKeyP5ValueQa":{"name":"Value","abstract":"

    The type of value stored by this key.

    ","parent_name":"ListEnvironmentKey"},"Protocols/ListEnvironmentKey.html#/s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ":{"name":"defaultValue","abstract":"

    The default value that will be vended by an Environment for this key if no other value has been set.

    ","parent_name":"ListEnvironmentKey"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp":{"name":"scrollViewProperties","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP9directionAA0E9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF":{"name":"updateLayout(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF":{"name":"layout(delegate:in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP11setZIndexesyyF":{"name":"setZIndexes()","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE19visibleContentFrame3forSo6CGRectVSo16UICollectionViewC_tF":{"name":"visibleContentFrame(for:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE36positionStickySectionHeadersIfNeeded2inySo16UICollectionViewC_tF":{"name":"positionStickySectionHeadersIfNeeded(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF":{"name":"updateOverscrollFooterPosition(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF":{"name":"adjustPositionsForLayoutUnderflow(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF":{"name":"createEmptyLayout(appearance:behavior:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior8delegateAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewD8Delegate_ptF":{"name":"createPopulatedLayout(appearance:behavior:delegate:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF":{"name":"shouldRebuild(layout:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF":{"name":"isSameLayoutType(as:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP0D10AppearanceQa":{"name":"LayoutAppearance","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ":{"name":"defaults","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp":{"name":"layoutAppearance","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc":{"name":"init(layoutAppearance:appearance:behavior:content:)","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzc_tFZ":{"name":"describe(appearance:)","abstract":"

    Creates a new layout description for a list layout, with the provided optional layout configuration.

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE9directionAA0D9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/CollectionViewLayoutDelegate.html#/s:10ListableUI28CollectionViewLayoutDelegateP04listdE20UpdatedItemPositionsyySo012UICollectionD0CF":{"name":"listViewLayoutUpdatedItemPositions(_:)","abstract":"

    Undocumented

    ","parent_name":"CollectionViewLayoutDelegate"},"Protocols/CollectionViewLayoutDelegate.html#/s:10ListableUI28CollectionViewLayoutDelegateP04listE7Content8defaultsAA04ListeH0CAA0jE8DefaultsV_tF":{"name":"listLayoutContent(defaults:)","abstract":"

    Undocumented

    ","parent_name":"CollectionViewLayoutDelegate"},"Protocols/ItemLayoutsValue.html#/s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","abstract":"

    The default value used when accessing the value, if none is set.

    ","parent_name":"ItemLayoutsValue"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP0cD4TypeQa":{"name":"ItemContentType","abstract":"

    The type of ItemContent associated with this coordinator.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp":{"name":"actions","abstract":"

    The available actions you can perform on the coordinated Item. Eg, updating it to a new value.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp":{"name":"info","abstract":"

    Info about the coordinated Item, such as its original and current value.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF":{"name":"wasInserted(_:)","abstract":"

    Invoked on the coordinator when it is first created and configured.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF":{"name":"wasRemoved(_:)","abstract":"

    Invoked on the coordinator when its owned item is removed from the list due to","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF":{"name":"wasMoved(_:)","abstract":"

    Invoked on the coordinator when its owned item is moved inside a list due to its","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF":{"name":"wasUpdated(_:)","abstract":"

    Invoked on the coordinator when an external update is pushed onto the owned Item.","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4Viewa":{"name":"View","abstract":"

    The view type associated with the item.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp":{"name":"view","abstract":"

    The view, if any, currently used to display the item.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11willDisplay4withy0cD4Type_0D4ViewQZ_tF":{"name":"willDisplay(with:)","abstract":"

    Invoked when the list is about to begin displaying the item with the given view.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP13didEndDisplay4withy0cD4Type_0D4ViewQZ_tF":{"name":"didEndDisplay(with:)","abstract":"

    Invoked when the list is about to complete displaying the item with the given view.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF":{"name":"wasSelected()","abstract":"

    Invoked when the item is selected, via either user interaction or the selectionStyle.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF":{"name":"wasDeselected()","abstract":"

    Invoked when the item is deselected, via either user interaction or the selectionStyle.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP05swipeF5Width12CoreGraphics7CGFloatVvp":{"name":"swipeActionsWidth","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP16didPerformActionxySbc_tcfc":{"name":"init(didPerformAction:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP5apply7actionsyAA0eF13ConfigurationV_tF":{"name":"apply(actions:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP5apply5stateyAA0E11ActionStateO_tF":{"name":"apply(state:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp":{"name":"identifier","abstract":"

    Identifies the content across updates to the list. This value must remain the same,","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp":{"name":"defaultItemProperties","abstract":"

    Default values to assign to various properties on the Item which wraps","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Called when rendering the content. This is where you should push data from your","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF":{"name":"wasMoved(comparedTo:)","abstract":"

    Return true if the content’s sort changed based on the old value passed into the function.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","abstract":"

    Return false if the content’ changed based on the old value passed into the function.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP16SwipeActionsViewQa":{"name":"SwipeActionsView","abstract":"

    The view type to use to render swipe actions (delete, etc) for this content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP0D4ViewQa":{"name":"ContentView","abstract":"

    The content view used to draw the content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","abstract":"

    Create and return a new content view used to render the content.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP11CoordinatorQa":{"name":"Coordinator","abstract":"

    The coordinator type to use to manage the live state of the Item and ItemContent,","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP18CoordinatorActionsa":{"name":"CoordinatorActions","abstract":"

    The actions passed to the coordinator.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP15CoordinatorInfoa":{"name":"CoordinatorInfo","abstract":"

    The info passed to the coordinator.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF":{"name":"makeCoordinator(actions:info:)","abstract":"

    Creates a new coordinator with the provided actions and info.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP14BackgroundViewQa":{"name":"BackgroundView","abstract":"

    The background view used to draw the background of the content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ":{"name":"createReusableBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s background.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP22SelectedBackgroundViewQa":{"name":"SelectedBackgroundView","abstract":"

    The selected background view used to draw the background of the content when it is selected or highlighted.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ":{"name":"createReusableSelectedBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s selected background.

    ","parent_name":"ItemContent"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP11anyWasMoved10comparedToSbAA0cD0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP15anyIsEquivalent2toSbAA0cD0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP015newPresentationD5State4with15updateCallbacks015performsContentK0ypAA0dH12DependenciesV_AA06UpdateK0CSbtF":{"name":"newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10identifierAA0C10IdentifierCvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10anyContentypvp":{"name":"anyContent","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP7layoutsAA0D7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP14selectionStyleAA0d9SelectionF0Ovp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP25insertAndRemoveAnimationsAA0d6InsertfgH0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP12swipeActionsAA05SwipeF13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10reorderingAA10ReorderingVSgvp":{"name":"reordering","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/HeaderFooterLayoutsValue.html#/s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ":{"name":"defaultValue","abstract":"

    The default value used when accessing the value, if none is set.

    ","parent_name":"HeaderFooterLayoutsValue"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP5apply2to3for4withyAA0cdE5ViewsVyxG_AA11ApplyReasonOAA0kcdE4InfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP0E4ViewQa":{"name":"ContentView","abstract":"

    The content view used to draw the content.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","abstract":"

    Create and return a new content view used to render the content.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP14BackgroundViewQa":{"name":"BackgroundView","abstract":"

    The background view used to draw the background of the content.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ":{"name":"createReusableBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s background.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP21PressedBackgroundViewQa":{"name":"PressedBackgroundView","abstract":"

    The selected background view used to draw the background of the content when it is selected or highlighted.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ":{"name":"createReusablePressedBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s pressed background.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentPAASQRzrlE12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","parent_name":"HeaderFooterContent"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP7layoutsAA0dE7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0ldE11ContentInfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP15anyIsEquivalent2toSbAA0cdE0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP015newPresentationdE5State24performsContentCallbacksypSb_tF":{"name":"newPresentationHeaderFooterState(performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter.html#/s:10ListableUI15AnyHeaderFooterP6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter"},"Protocols/AnyHeaderFooter.html#/s:10ListableUI15AnyHeaderFooterP7layoutsAA0dE7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter"},"Protocols/AnyHeaderFooter.html":{"name":"AnyHeaderFooter","abstract":"

    Undocumented

    "},"Protocols/AnyHeaderFooter_Internal.html":{"name":"AnyHeaderFooter_Internal","abstract":"

    Undocumented

    "},"Protocols/HeaderFooterContent.html":{"name":"HeaderFooterContent","abstract":"

    A HeaderFooterContent is a type which specifies the content of a header, footer,"},"Protocols/HeaderFooterLayoutsValue.html":{"name":"HeaderFooterLayoutsValue","abstract":"

    The HeaderFooterLayoutsValue protocol provides a default value for the different layouts stored"},"Protocols/AnyItem.html":{"name":"AnyItem","abstract":"

    Undocumented

    "},"Protocols/AnyItem_Internal.html":{"name":"AnyItem_Internal","abstract":"

    Undocumented

    "},"Protocols/ItemContent.html":{"name":"ItemContent","abstract":"

    An ItemContent is a type used to provide the content of an Item"},"Protocols/ItemContentSwipeActionsView.html":{"name":"ItemContentSwipeActionsView","abstract":"

    Conform to this protocol to implement a completely custom swipe action view.

    "},"Protocols/ItemContentCoordinator.html":{"name":"ItemContentCoordinator","abstract":"

    A type which lets you interactively manage the contents of an Item or ItemContent"},"Protocols/ItemLayoutsValue.html":{"name":"ItemLayoutsValue","abstract":"

    The ItemLayoutsValue protocol provides a default value for the different layouts stored"},"Protocols/CollectionViewLayoutDelegate.html":{"name":"CollectionViewLayoutDelegate","abstract":"

    Undocumented

    "},"Protocols/ListLayout.html":{"name":"ListLayout","abstract":"

    Undocumented

    "},"Protocols/AnyLayoutDescriptionConfiguration.html":{"name":"AnyLayoutDescriptionConfiguration","abstract":"

    Undocumented

    "},"Protocols/AnyListLayout.html":{"name":"AnyListLayout","abstract":"

    Undocumented

    "},"Protocols/ListLayoutAppearance.html":{"name":"ListLayoutAppearance","abstract":"

    Undocumented

    "},"Protocols/ListEnvironmentKey.html":{"name":"ListEnvironmentKey","abstract":"

    Defines a value stored in the ListEnvironment of a list.

    "},"Protocols/ListViewSource.html":{"name":"ListViewSource","abstract":"

    Undocumented

    "},"Protocols/LocalizedCollatableItemContent.html":{"name":"LocalizedCollatableItemContent","abstract":"

    If you would like to make your ItemContent work with the LocalizedItemCollator,"},"Protocols/AnyLocalizedCollatableItem.html":{"name":"AnyLocalizedCollatableItem","abstract":"

    Represents an AnyItem which can be collated, via its vended collationString.

    "},"Protocols/SectionInfo.html":{"name":"SectionInfo","abstract":"

    Undocumented

    "},"Protocols/AnySectionInfo.html":{"name":"AnySectionInfo","abstract":"

    Undocumented

    "},"Protocols/SectionLayoutsValue.html":{"name":"SectionLayoutsValue","abstract":"

    The SectionLayoutsValue protocol provides a default value for the different layouts stored"},"Functions.html#/s:10ListableUI13listableFatal_4file4lines5NeverOSSyXK_s12StaticStringVSutF":{"name":"listableFatal(_:file:line:)","abstract":"

    Undocumented

    "},"Functions.html#/s:10ListableUI20listablePrecondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF":{"name":"listablePrecondition(_:_:file:line:)","abstract":"

    Undocumented

    "},"Extensions/Set.html#/s:Sh10ListableUIAA15ScrollAnimationO0D7OptionsORszrlE7defaultShyAEGvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"Set"},"Extensions/UIRectEdge.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"UIRectEdge"},"Extensions/SectionedDiff.html#/SectionChanges":{"name":"SectionChanges","parent_name":"SectionedDiff"},"Extensions/SectionedDiff.html#/ItemChanges":{"name":"ItemChanges","parent_name":"SectionedDiff"},"Extensions/SectionedDiff.html":{"name":"SectionedDiff"},"Extensions/UIRectEdge.html":{"name":"UIRectEdge"},"Extensions/Set.html":{"name":"Set"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO4leftyA2EmF":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO6centeryA2EmF":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO5rightyA2EmF":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO10originWith06parentD05width7padding12CoreGraphics7CGFloatVAL_AlA17HorizontalPaddingVtF":{"name":"originWith(parentWidth:width:padding:)","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V7paddingAA17HorizontalPaddingVvp":{"name":"padding","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V5widthAA0D10ConstraintOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V9alignmentAC9AlignmentOvp":{"name":"alignment","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V7padding5width9alignmentAeA17HorizontalPaddingV_AA0D10ConstraintOAC9AlignmentOtcfc":{"name":"init(padding:width:alignment:)","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V8position4withAC8PositionVSo6CGSizeV_tF":{"name":"position(with:)","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO7defaultyA2CmF":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO4fillyA2CmF":{"name":"fill","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO6customyA2C0C0VcACmF":{"name":"custom(_:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO5merge4withA2C_tF":{"name":"merge(with:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO8position4with07defaultD0AC8PositionVSo6CGSizeV_12CoreGraphics7CGFloatVtF":{"name":"position(with:defaultWidth:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth/Custom.html":{"name":"Custom","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth/Alignment.html":{"name":"Alignment","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO8PositionV":{"name":"Position","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO02noD0yA2CmF":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO5fixedyAC12CoreGraphics7CGFloatVcACmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO6atMostyAC12CoreGraphics7CGFloatVcACmF":{"name":"atMost(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO5clampy12CoreGraphics7CGFloatVAGF":{"name":"clamp(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO7defaultyA2ImF":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO5fixedyAI12CoreGraphics7CGFloatVcAImF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO5value4with12CoreGraphics7CGFloatVAN_tF":{"name":"value(with:)","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO02noD0yA2GmF":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO7atLeastyA2G5ValueOcAGmF":{"name":"atLeast(_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO6atMostyAG12CoreGraphics7CGFloatVcAGmF":{"name":"atMost(_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO6withinyA2G5ValueO_12CoreGraphics7CGFloatVtcAGmF":{"name":"within(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis/Value.html":{"name":"Value","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5clamp_4with12CoreGraphics7CGFloatVAL_ALtF":{"name":"clamp(_:with:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5widthAE4AxisOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV6heightAE4AxisOvp":{"name":"height","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV02noD0AEvpZ":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintVyA2E4AxisOcfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5width6heightA2E4AxisO_AItcfc":{"name":"init(width:height:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5clamp_4withSo6CGSizeVAI_AItF":{"name":"clamp(_:with:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint/Axis.html":{"name":"Axis","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing.html#/s:10ListableUI6SizingO7defaultyA2CmF":{"name":"default","abstract":"

    The default size from the list’s appearance is used. The size is not dynamic at all.

    ","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO5fixedyAC12CoreGraphics7CGFloatV_AGtcACmF":{"name":"fixed(width:height:)","abstract":"

    Fixes the size to the absolute value passed in.

    ","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO8thatFitsyA2C10ConstraintVcACmF":{"name":"thatFits(_:)","abstract":"

    Sizes the item by calling sizeThatFits on its underlying view type.","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO10autolayoutyA2C10ConstraintVcACmF":{"name":"autolayout(_:)","abstract":"

    Sizes the item by calling systemLayoutSizeFitting on its underlying view type.","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO11MeasureInfoV":{"name":"MeasureInfo","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Enums/Sizing/Constraint.html":{"name":"Constraint","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO14curveEaseInOutyA2EmF":{"name":"curveEaseInOut","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO11curveEaseInyA2EmF":{"name":"curveEaseIn","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO12curveEaseOutyA2EmF":{"name":"curveEaseOut","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO11curveLinearyA2EmF":{"name":"curveLinear","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO4noneyA2CmF":{"name":"none","abstract":"

    No animation is performed.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO7defaultyA2CmF":{"name":"default","abstract":"

    A default animation is performed. This is the same as .custom().

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO6customyACSd_ShyAC0D7OptionsOGtcACmF":{"name":"custom(duration:options:)","abstract":"

    A custom animation is performed.","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO6springyACSd_So24UISpringTimingParametersCtcACmF":{"name":"spring(duration:timing:)","abstract":"

    Undocumented

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO3and4withACSb_tF":{"name":"and(with:)","abstract":"

    Ands the animation with the provided bool, returning the animation if true, and .none if false.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO7perform10animations10completionyyyc_ySbctF":{"name":"perform(animations:completion:)","abstract":"

    Performs the provided animations for the ScrollAnimation.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation/AnimationOptions.html":{"name":"AnimationOptions","abstract":"

    The animations options available for the ScrollAnimation.

    ","parent_name":"ScrollAnimation"},"Enums/ListSizing.html#/s:10ListableUI10ListSizingO10fillParentyA2CmF":{"name":"fillParent","abstract":"

    When using .fillParent, the full available space will be taken up, regardless","parent_name":"ListSizing"},"Enums/ListSizing.html#/s:10ListableUI10ListSizingO14measureContentyA2CmF":{"name":"measureContent","abstract":"

    When using .measureContent, the content will be measured within the provided fitting size","parent_name":"ListSizing"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO8verticalyA2CmF":{"name":"vertical","abstract":"

    A list layout which lays out top to bottom.

    ","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO10horizontalyA2CmF":{"name":"horizontal","abstract":"

    A list layout which lays out left to right (or leading to trailing, depending on implementation).

    ","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXE_xyXEtlF":{"name":"switch(vertical:horizontal:)","abstract":"

    When writing a layout, use this method to return differing values based on","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXK_xyXKtlF":{"name":"switch(vertical:horizontal:)","abstract":"

    When writing a layout, use this method to return differing values based on","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6height3for12CoreGraphics7CGFloatVSo6CGSizeV_tF":{"name":"height(for:)","abstract":"

    .vertical: Returns the height of the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO5width3for12CoreGraphics7CGFloatVSo6CGSizeV_tF":{"name":"width(for:)","abstract":"

    .vertical: Returns the width of the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO5point1x1ySo7CGPointV12CoreGraphics7CGFloatV_AKtF":{"name":"point(x:y:)","abstract":"

    .vertical: Returns a CGPoint made with (x, y).","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4size3forSo6CGSizeVAG_tF":{"name":"size(for:)","abstract":"

    .vertical: Returns the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4size5width6heightSo6CGSizeV12CoreGraphics7CGFloatV_AKtF":{"name":"size(width:height:)","abstract":"

    .vertical: Returns a CGSize made with (width, height).","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4maxY3for12CoreGraphics7CGFloatVSo6CGRectV_tF":{"name":"maxY(for:)","abstract":"

    .vertical: Returns the maxY of the frame.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4maxX3for12CoreGraphics7CGFloatVSo6CGRectV_tF":{"name":"maxX(for:)","abstract":"

    .vertical: Returns the maxX of the frame.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO1x3for12CoreGraphics7CGFloatVSo7CGPointV_tF":{"name":"x(for:)","abstract":"

    .vertical: Returns the x of the point.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO1y3for12CoreGraphics7CGFloatVSo7CGPointV_tF":{"name":"y(for:)","abstract":"

    .vertical: Returns the y of the point.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO3top4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF":{"name":"top(with:)","abstract":"

    .vertical: Returns the top of the insets.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6bottom4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF":{"name":"bottom(with:)","abstract":"

    .vertical: Returns the bottom of the insets.","parent_name":"LayoutDirection"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO13notSelectableyA2CmF":{"name":"notSelectable","abstract":"

    The item is not selectable at all.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO8tappableyA2CmF":{"name":"tappable","abstract":"

    The item is temporarily selectable. Once the user lifts their finger, the item is deselected.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO10selectableyACSb_tcACmF":{"name":"selectable(isSelected:)","abstract":"

    The item is persistently selectable. Once the user lifts their finger, the item is maintained.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO6singleyA2CmF":{"name":"single","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO5firstyA2CmF":{"name":"first","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO6middleyA2CmF":{"name":"middle","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO4lastyA2CmF":{"name":"last","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO6closedyA2CmF":{"name":"closed","abstract":"

    The actions are completely collapsed.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO4openyA2CmF":{"name":"open","abstract":"

    The actions are open to their natural size.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO7swipingyACSb_tcACmF":{"name":"swiping(willPerformAction:)","abstract":"

    The actions are being swiped and the size is affected by the gesture recognizer.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO016willPerformFirstD13AutomaticallyyA2CmF":{"name":"willPerformFirstActionAutomatically","abstract":"

    The actions have been swiped far enough to confirm the first action.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO13expandActionsyA2CmF":{"name":"expandActions","abstract":"

    The actions have been asked to completely expand (typically because the item is being deleted).

    ","parent_name":"SwipeActionState"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO03anyC0ShyACGvpZ":{"name":"anyContent","abstract":"

    If there is any content in the list at all, including headers and footers.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO12sectionsOnlyShyACGvpZ":{"name":"sectionsOnly","abstract":"

    Check if the content in the list is section-driven content, with the","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO10listHeaderyA2CmF":{"name":"listHeader","abstract":"

    If the list has a list-level header.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO10listFooteryA2CmF":{"name":"listFooter","abstract":"

    If the list has a list-level footer.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO16overscrollFooteryA2CmF":{"name":"overscrollFooter","abstract":"

    If the list has an overscroll footer.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO5itemsyA2CmF":{"name":"items","abstract":"

    If the sections in the list contain any items.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO14sectionHeadersyA2CmF":{"name":"sectionHeaders","abstract":"

    If any section in the list has a header.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO14sectionFootersyA2CmF":{"name":"sectionFooters","abstract":"

    If any section in the list has a footer.

    ","parent_name":"ContentFilters"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV11destinationAC0D11DestinationOvp":{"name":"destination","abstract":"

    The item in the list to scroll to when the insertedIdentifier is inserted.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV18insertedIdentifierAA03AnyJ0Cvp":{"name":"insertedIdentifier","abstract":"

    The identifier of the item for which the AutoScrollAction should be performed.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV8positionAA0D8PositionVvp":{"name":"position","abstract":"

    The desired scroll position,

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV9animationAA0D9AnimationOvp":{"name":"animation","abstract":"

    How to animate the change.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV13shouldPerformySbAA04ListD12PositionInfoVcvp":{"name":"shouldPerform","abstract":"

    An additional check you may provide to approve or reject the scroll action.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV10didPerformyyAA04ListD12PositionInfoVcvp":{"name":"didPerform","abstract":"

    Called when the list performs the insertion.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO9firstItemyA2EmF":{"name":"firstItem","abstract":"

    Scroll to the first item in the list.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO8lastItemyA2EmF":{"name":"lastItem","abstract":"

    Scroll to the last item in the list.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO4itemyAeA13AnyIdentifierCcAEmF":{"name":"item(_:)","abstract":"

    Scroll to the item with the specified identifier.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO4noneyA2CmF":{"name":"none","abstract":"

    The list never automatically scrolls.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO12scrollToItemyA2C010OnInsertedH0V_tcACmF":{"name":"scrollToItem(onInsertOf:)","abstract":"

    Scrolls to the specified item when the list is updated if the item was inserted in this update.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO8scrollTo_10onInsertOf8position9animation13shouldPerform03didN0A2C0D11DestinationOSg_AA13AnyIdentifierCAA0D8PositionVAA0D9AnimationOSbAA04ListdS4InfoVcyATctFZ":{"name":"scrollTo(_:onInsertOf:position:animation:shouldPerform:didPerform:)","abstract":"

    Scrolls to the specified item when the list is updated if the item was inserted in this update.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction/ScrollDestination.html":{"name":"ScrollDestination","abstract":"

    Where to scroll as a result of an AutoScrollAction.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction/OnInsertedItem.html":{"name":"OnInsertedItem","abstract":"

    Values used to configure the scrollToItem(onInsertOf:) action.

    ","parent_name":"AutoScrollAction"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO11willDisplayyA2CmF":{"name":"willDisplay","abstract":"

    The view is about to be displayed on screen. Update should be performed with no animation.

    ","parent_name":"ApplyReason"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO10wasUpdatedyA2CmF":{"name":"wasUpdated","abstract":"

    A view that is already visible is being updated.","parent_name":"ApplyReason"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO13shouldAnimateSbvp":{"name":"shouldAnimate","abstract":"

    If you should use animations while applying the update.","parent_name":"ApplyReason"},"Enums/ApplyReason.html":{"name":"ApplyReason","abstract":"

    Why the Item or HeaderFooter is being asked to apply an update to its presented views.

    "},"Enums/AutoScrollAction.html":{"name":"AutoScrollAction","abstract":"

    Options for auto-scrolling to items when the list is updated.

    "},"Enums/ContentFilters.html":{"name":"ContentFilters","abstract":"

    A filter enum which allows you to query the types of content contained in a Content or Section object.

    "},"Enums/SwipeActionState.html":{"name":"SwipeActionState","abstract":"

    These states dictate the layout of the swipe actions.

    "},"Enums/ItemPosition.html":{"name":"ItemPosition","abstract":"

    Undocumented

    "},"Enums/ItemSelectionStyle.html":{"name":"ItemSelectionStyle","abstract":"

    Controls the selection style and behavior of an item in a list.

    "},"Enums/LayoutDirection.html":{"name":"LayoutDirection","abstract":"

    Describes the given direction / axis that a layout uses when flowing its content.

    "},"Enums/ListSizing.html":{"name":"ListSizing","abstract":"

    Provides the possible options for how to size and measure a list when its measured size is queried"},"Enums/ScrollAnimation.html":{"name":"ScrollAnimation","abstract":"

    Specifies the kind of animation to use when scrolling a list view.

    "},"Enums/Sizing.html":{"name":"Sizing","abstract":"

    Controls how a header, footer, or item in a list view is sized.

    "},"Enums/WidthConstraint.html":{"name":"WidthConstraint","abstract":"

    Undocumented

    "},"Enums/CustomWidth.html":{"name":"CustomWidth","abstract":"

    Undocumented

    "},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC8isMovingSbvp":{"name":"isMoving","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC11beginMovingSbyF":{"name":"beginMoving()","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC5moved4withySo22UIPanGestureRecognizerC_tF":{"name":"moved(with:)","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC3endyyF":{"name":"end()","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)init":{"name":"init()","abstract":"

    Creates a preview for the given width.

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/s:10ListableUI15ItemPreviewViewC4with5state10appearance4itemAC12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptcfc":{"name":"init(with:state:appearance:item:)","abstract":"

    Creates a preview for the given item and parameters, and then lays out the preview view.

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF":{"name":"update(with:state:appearance:item:)","abstract":"

    Updates the item for the given parameters.","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/StaticSource/State.html#/s:10ListableUI12StaticSourceC5StateVAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"State"},"Classes/StaticSource/State.html":{"name":"State","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7contentAA7ContentVvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC4withAcA7ContentV_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC4withACyAA7ContentVzXE_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7content4withADyAA0D5StateCyAC0G0VG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7content4withAA7ContentVAA0D5StateCyAC0H0VG_tF":{"name":"content(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC7Buildera":{"name":"Builder","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC4withACyxGyAA0D5StateCyxG_AA7ContentVztc_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC7content4withADyAA0D5StateCyxG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC5valuexvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC3setyyyxzXEF":{"name":"set(_:)","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC7initial9didChangeACyxGx_yyctcfc":{"name":"init(initial:didChange:)","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC7discardyyF":{"name":"discard()","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/StateAccessor.html#/s:10ListableUI13StateAccessorC5valuexvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"StateAccessor"},"Classes/ListViewController.html#/s:10ListableUI18ListViewControllerC9configure4listyAA0C10PropertiesVz_tF":{"name":"configure(list:)","abstract":"

    Override this method to configure your list how you’d like to.","parent_name":"ListViewController"},"Classes/ListViewController.html#/s:10ListableUI18ListViewControllerC6reload8animatedySb_tF":{"name":"reload(animated:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)initWithNibName:bundle:":{"name":"init(nibName:bundle:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)loadView":{"name":"loadView()","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)viewWillAppear:":{"name":"viewWillAppear(_:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListView.html#/s:10ListableUI8ListViewC5frame10appearanceACSo6CGRectV_AA10AppearanceVtcfc":{"name":"init(frame:appearance:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC18scrollPositionInfoAA0c6ScrollfG0Vvp":{"name":"scrollPositionInfo","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC6layoutAA17LayoutDescriptionVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC3set6layout8animated10completionyAA17LayoutDescriptionV_SbyyctF":{"name":"set(layout:animated:completion:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC21scrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"scrollIndicatorInsets","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC13stateObserverAA0c5StateF0Vvp":{"name":"stateObserver","abstract":"

    A state observer allows you to receive callbacks when varying types","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC16ScrollCompletiona":{"name":"ScrollCompletion","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0M9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the provided item, with the provided positioning.","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0M9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the item with the provided identifier, with the provided positioning.","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToTop(animation:completion:)","abstract":"

    Scrolls to the very top of the list, which includes displaying the list header.

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToLastItem(animation:completion:)","abstract":"

    Scrolls to the last item in the list. If the list contains no items, no action is performed.

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11environmentAA0C11EnvironmentVvp":{"name":"environment","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC7contentAA7ContentVvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC10setContent8animated_ySb_AA0F0VtF":{"name":"setContent(animated:_:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC3set6source7initial8animatedAA13StateAccessorCy0I0QzGx_AKSbtAA0cD6SourceRzlF":{"name":"set(source:initial:animated:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC9configure4withyyAA0C10PropertiesVzXE_tF":{"name":"configure(with:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC9configure4withyAA0C10PropertiesV_tF":{"name":"configure(with:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)frame":{"name":"frame","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)bounds":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)backgroundColor":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)didMoveToWindow":{"name":"didMoveToWindow()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)didMoveToSuperview":{"name":"didMoveToSuperview()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_yAA0C10PropertiesVzXEtFZ":{"name":"contentSize(in:for:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_AA0C10PropertiesVtFZ":{"name":"contentSize(in:for:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC28testing_forceLayoutUpdateNowyyF":{"name":"testing_forceLayoutUpdateNow()","abstract":"

    Call this method to force an immediate, synchronous re-render of the list","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF":{"name":"clearSelectionDuringViewWillAppear(alongside:animated:)","abstract":"

    A method which provides Behavior.SelectionMode.single‘s clearsSelectionOnViewWillAppear behaviour.","parent_name":"ListView"},"Classes/ListActions/ViewControllerTransitioning.html#/s:10ListableUI11ListActionsC27ViewControllerTransitioningCAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ViewControllerTransitioning"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingCAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC16ScrollCompletiona":{"name":"ScrollCompletion","abstract":"

    Undocumented

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0N9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the provided item, with the provided positioning.","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0N9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the item with the provided identifier, with the provided positioning.","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToTop(animation:completion:)","abstract":"

    Scrolls to the very top of the list, which includes displaying the list header.

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToLastItem(animation:completion:)","abstract":"

    Scrolls to the last item in the list. If the list contains no items, no action is performed.

    ","parent_name":"Scrolling"},"Classes/ListActions.html#/s:10ListableUI11ListActionsC9scrollingAC9ScrollingCvp":{"name":"scrolling","abstract":"

    Actions which allow scrolling to individual items in a list.

    ","parent_name":"ListActions"},"Classes/ListActions.html#/s:10ListableUI11ListActionsC27viewControllerTransitioningAC04ViewfG0Cvp":{"name":"viewControllerTransitioning","abstract":"

    Actions which allow hooking up your list to the view controller transitioning APIs.

    ","parent_name":"ListActions"},"Classes/ListActions.html#/s:10ListableUI11ListActionsCACycfc":{"name":"init()","abstract":"

    Creates and returns an actions object which can be registered with a list view.

    ","parent_name":"ListActions"},"Classes/ListActions/Scrolling.html":{"name":"Scrolling","abstract":"

    Provides access to scrolling actions within a list view.

    ","parent_name":"ListActions"},"Classes/ListActions/ViewControllerTransitioning.html":{"name":"ViewControllerTransitioning","abstract":"

    Provides access to view controller transitioning options in a list.

    ","parent_name":"ListActions"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC11SectionInfoC":{"name":"SectionInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC":{"name":"SupplementaryItemInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC8ItemInfoC":{"name":"ItemInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp":{"name":"actions","parent_name":"DefaultItemContentCoordinator"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp":{"name":"info","parent_name":"DefaultItemContentCoordinator"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp":{"name":"view","parent_name":"DefaultItemContentCoordinator"},"Classes/ItemContentCoordinatorInfo.html#/s:10ListableUI26ItemContentCoordinatorInfoC8originalAA0C0VyxGvp":{"name":"original","abstract":"

    The original state of the item, as passed to the list.","parent_name":"ItemContentCoordinatorInfo"},"Classes/ItemContentCoordinatorInfo.html#/s:10ListableUI26ItemContentCoordinatorInfoC7currentAA0C0VyxGvp":{"name":"current","abstract":"

    The current value of the item, including changes made","parent_name":"ItemContentCoordinatorInfo"},"Classes/ItemContentCoordinatorActions.html#/s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_AA0C0VyxGtF":{"name":"update(animated:_:)","abstract":"

    Updates the item to the provided item.

    ","parent_name":"ItemContentCoordinatorActions"},"Classes/ItemContentCoordinatorActions.html#/s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_yAA0C0VyxGzXEtF":{"name":"update(animated:_:)","abstract":"

    Allows you to update the item passed into the update closure.

    ","parent_name":"ItemContentCoordinatorActions"},"Classes/__LST_KeyboardObserver_ObjCAccess.html#/c:@M@ListableUI@objc(cs)__LST_KeyboardObserver_ObjCAccess(cm)__setupSharedInstance":{"name":"__setupSharedInstance()","abstract":"

    Undocumented

    ","parent_name":"__LST_KeyboardObserver_ObjCAccess"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC05swipeE5Width12CoreGraphics7CGFloatVvp":{"name":"swipeActionsWidth","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC16didPerformActionACySbc_tcfc":{"name":"init(didPerformAction:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/c:@M@ListableUI@objc(cs)DefaultSwipeActionsView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC5apply7actionsyAA0dE13ConfigurationV_tF":{"name":"apply(actions:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC5apply5stateyAA0D11ActionStateO_tF":{"name":"apply(state:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/AnyIdentifier.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"AnyIdentifier"},"Classes/AnyIdentifier.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"AnyIdentifier"},"Classes/AnyIdentifier.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"AnyIdentifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierCACyxGycfc":{"name":"init()","abstract":"

    Identifier which identifies by the type of Represented only.","parent_name":"Identifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierCyACyxGqd__cSHRd__lufc":{"name":"init(_:)","abstract":"

    Creates an identifier which identifies by both Represented, and the value passed to init.

    ","parent_name":"Identifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierC16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    Undocumented

    ","parent_name":"Identifier"},"Classes/Identifier.html":{"name":"Identifier","abstract":"

    An Identifier is used to unique items in Listable lists. Sections,"},"Classes/AnyIdentifier.html":{"name":"AnyIdentifier","abstract":"

    A type-erased Identifier used to identify content in a listable list.

    "},"Classes/DefaultSwipeActionsView.html":{"name":"DefaultSwipeActionsView","abstract":"

    Undocumented

    "},"Classes/__LST_KeyboardObserver_ObjCAccess.html":{"name":"__LST_KeyboardObserver_ObjCAccess","abstract":"

    An Objective-C accessible class that lets us set up the shared"},"Classes/ItemContentCoordinatorActions.html":{"name":"ItemContentCoordinatorActions","abstract":"

    The available actions you can perform as a coordinator, which are reported back to the list to manage the item.

    "},"Classes/ItemContentCoordinatorInfo.html":{"name":"ItemContentCoordinatorInfo","abstract":"

    Information about the current and original state of the item.

    "},"Classes/DefaultItemContentCoordinator.html":{"name":"DefaultItemContentCoordinator","abstract":"

    The default ItemContentCoordinator, which performs no actions.

    "},"Classes/ListLayoutContent.html":{"name":"ListLayoutContent","abstract":"

    Undocumented

    "},"Classes/ListActions.html":{"name":"ListActions","abstract":"

    ListActions is an type that you can use to gain access to actions to perform on a List"},"Classes/ListView.html":{"name":"ListView","abstract":"

    Undocumented

    "},"Classes.html#/s:10ListableUI15UpdateCallbacksC":{"name":"UpdateCallbacks","abstract":"

    Undocumented

    "},"Classes/ListViewController.html":{"name":"ListViewController","abstract":"

    A class which provides an easy way to set up and display a ListView,"},"Classes/StateAccessor.html":{"name":"StateAccessor","abstract":"

    Undocumented

    "},"Classes/SourceState.html":{"name":"SourceState","abstract":"

    Undocumented

    "},"Classes/DynamicSource.html":{"name":"DynamicSource","abstract":"

    Undocumented

    "},"Classes/StaticSource.html":{"name":"StaticSource","abstract":"

    Undocumented

    "},"Classes/ItemPreviewView.html":{"name":"ItemPreviewView","abstract":"

    A view you can use to test the various possible states that your ItemContent can be in.

    "},"Classes/ReorderingActions.html":{"name":"ReorderingActions","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Functions.html":{"name":"Functions","abstract":"

    The following functions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file diff --git a/docs/Listable/docsets/Listable.docset/Contents/Resources/docSet.dsidx b/docs/Listable/docsets/Listable.docset/Contents/Resources/docSet.dsidx index 4ee2f49af..c2e2d008b 100644 Binary files a/docs/Listable/docsets/Listable.docset/Contents/Resources/docSet.dsidx and b/docs/Listable/docsets/Listable.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/Listable/docsets/Listable.tgz b/docs/Listable/docsets/Listable.tgz index 0597dd1c9..b86f50f40 100644 Binary files a/docs/Listable/docsets/Listable.tgz and b/docs/Listable/docsets/Listable.tgz differ diff --git a/docs/Listable/index.html b/docs/Listable/index.html index 4f1e692d9..07dee0c7e 100644 --- a/docs/Listable/index.html +++ b/docs/Listable/index.html @@ -22,7 +22,7 @@ Listable - (44% documented) + (45% documented)

    @@ -255,6 +255,9 @@

    + @@ -264,6 +267,9 @@ + @@ -282,6 +288,9 @@ + + + + @@ -342,7 +360,7 @@ HeaderFooterContentViews - - - @@ -504,10 +513,7 @@ Section - + + + + + +
    -

    You use the ListAppearance.Sizing struct to control the default measurements within the list: How tall are standard rows, headers, footers, etc.

    -
    public struct ListAppearance.Sizing : Equatable
    +

    You use the TableAppearance.Sizing struct to control the default measurements within the list: How tall are standard rows, headers, footers, etc.

    +
    public struct TableAppearance.Sizing : Equatable
     {
         public var itemHeight : CGFloat
     
    @@ -645,8 +669,8 @@ 

    Highly Customizable

    }
    -

    You can use ListAppearance.Layout to customize the padding of the entire list, how wide the list should be (eg, up to 700px, more than 400px, etc) plus control spacing between items, headers, and footers.

    -
    public struct ListAppearance.Layout : Equatable
    +

    You can use TableAppearance.Layout to customize the padding of the entire list, how wide the list should be (eg, up to 700px, more than 400px, etc) plus control spacing between items, headers, and footers.

    +
    public struct TableAppearance.Layout : Equatable
     {
         public var padding : UIEdgeInsets
         public var width : WidthConstraint
    @@ -1200,7 +1224,7 @@ 
           
         
         
       
    diff --git a/docs/Listable/search.json b/docs/Listable/search.json
    index b043357cc..ac6498fa1 100644
    --- a/docs/Listable/search.json
    +++ b/docs/Listable/search.json
    @@ -1 +1 @@
    -{"Typealiases.html#/s:10ListableUI6Headera":{"name":"Header","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI6Footera":{"name":"Footer","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI13HeaderContenta":{"name":"HeaderContent","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI13FooterContenta":{"name":"FooterContent","abstract":"

    Undocumented

    "},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV17CompletionHandlera":{"name":"CompletionHandler","abstract":"

    The completion handler to call after performing the swipe action.

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV7Handlera":{"name":"Handler","abstract":"

    The completion handler called when the action is tapped.

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5titleSSSgvp":{"name":"title","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV15backgroundColorSo7UIColorCSgvp":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5imageSo7UIImageCSgvp":{"name":"image","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV7handleryyySbccvp":{"name":"handler","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5title15backgroundColor5image7handlerACSS_So7UIColorCSo7UIImageCSgyySbcctcfc":{"name":"init(title:backgroundColor:image:handler:)","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV7actionsSayAA0C6ActionVGvp":{"name":"actions","abstract":"

    The actions to display when the cell is swiped.

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC0Sbvp":{"name":"performsFirstActionWithFullSwipe","abstract":"

    Whether the first action is performed automatically with a full swipe.

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV6action027performsFirstActionWithFullC0AcA0cI0V_Sbtcfc":{"name":"init(action:performsFirstActionWithFullSwipe:)","abstract":"

    Undocumented

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV7actions027performsFirstActionWithFullC0ACSayAA0cI0VG_Sbtcfc":{"name":"init(actions:performsFirstActionWithFullSwipe:)","abstract":"

    Undocumented

    ","parent_name":"SwipeActionsConfiguration"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4left12CoreGraphics7CGFloatVvp":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV5right12CoreGraphics7CGFloatVvp":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4zeroACvpZ":{"name":"zero","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4left5rightAC12CoreGraphics7CGFloatV_AHtcfc":{"name":"init(left:right:)","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV7uniformAC12CoreGraphics7CGFloatV_tcfc":{"name":"init(uniform:)","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/Section/Columns.html#/s:10ListableUI7SectionV7ColumnsV5countSivp":{"name":"count","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/Section/Columns.html#/s:10ListableUI7SectionV7ColumnsV7spacing12CoreGraphics7CGFloatVvp":{"name":"spacing","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/Section/Columns.html#/s:10ListableUI7SectionV7ColumnsV3oneAEvpZ":{"name":"one","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/Section/Columns.html#/s:10ListableUI7SectionV7ColumnsV5count7spacingAESi_12CoreGraphics7CGFloatVtcfc":{"name":"init(count:spacing:)","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/Section/Layout.html#/s:10ListableUI7SectionV6LayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/Section/Layout.html#/s:10ListableUI7SectionV6LayoutV011customInterC7Spacing12CoreGraphics7CGFloatVSgvp":{"name":"customInterSectionSpacing","abstract":"

    Overrides the calculated spacing after this section

    ","parent_name":"Layout"},"Structs/Section/Layout.html#/s:10ListableUI7SectionV6LayoutV5width011customInterC7SpacingAeA11CustomWidthO_12CoreGraphics7CGFloatVSgtcfc":{"name":"init(width:customInterSectionSpacing:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/Section.html#/s:10ListableUI7SectionV4infoAA03AnyC4Info_pvp":{"name":"info","abstract":"

    Data backing the identity and updates to the section – for example","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    The layout for the section and all its content.","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV7columnsAC7ColumnsVvp":{"name":"columns","abstract":"

    How columns within the section should be distributed.","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6headerAA15AnyHeaderFooter_pSgvp":{"name":"header","abstract":"

    The header, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6footerAA15AnyHeaderFooter_pSgvp":{"name":"footer","abstract":"

    The footer, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV5itemsSayAA7AnyItem_pGvp":{"name":"items","abstract":"

    The items, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV8contains3anySbShyAA14ContentFiltersOG_tF":{"name":"contains(any:)","abstract":"

    Check if the section contains any of the given types, which you specify via the filters","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_5buildACx_yACzXEtcSHRzlufc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_5buildACx_yACzXEtcAA0C4InfoRzlufc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_6layout7columns6header6footer5itemsACx_AC6LayoutVAC7ColumnsVAA15AnyHeaderFooter_pSgANSayAA0K4Item_pGtcSHRzlufc":{"name":"init(_:layout:columns:header:footer:items:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_6layout7columns6header6footer5itemsACx_AC6LayoutVAC7ColumnsVAA15AnyHeaderFooter_pSgANSayAA0K4Item_pGtcAA0C4InfoRzlufc":{"name":"init(_:layout:columns:header:footer:items:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV3addyyAA7AnyItem_pF":{"name":"add(_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_AA7AnyItem_ptFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_AA4ItemVyxGtAA0E7ContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_xtAA11ItemContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayAA7AnyItem_pGtFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayAA4ItemVyxGGtAA0E7ContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayxGtAA11ItemContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section/Layout.html":{"name":"Layout","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section/Columns.html":{"name":"Columns","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/ScrollPosition/IfAlreadyVisible.html#/s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO9doNothingyA2EmF":{"name":"doNothing","abstract":"

    Do not perform any action if the item is already partially visible.

    ","parent_name":"IfAlreadyVisible"},"Structs/ScrollPosition/IfAlreadyVisible.html#/s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO08scrollToD0yA2EmF":{"name":"scrollToPosition","abstract":"

    Scroll the item to the desired Position, even if it is already partially visible.

    ","parent_name":"IfAlreadyVisible"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O3topyA2EmF":{"name":"top","abstract":"

    Scroll the item to the top of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O8centeredyA2EmF":{"name":"centered","abstract":"

    Scroll the item to the middle of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O6bottomyA2EmF":{"name":"bottom","abstract":"

    Scroll the item to the bottom of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition.html#/s:10ListableUI14ScrollPositionV8position16ifAlreadyVisible6offsetA2C0D0O_AC02IfgH0O12CoreGraphics7CGFloatVtcfc":{"name":"init(position:ifAlreadyVisible:offset:)","abstract":"

    Creates a new scroll position with the provided values.

    ","parent_name":"ScrollPosition"},"Structs/ScrollPosition/Position.html":{"name":"Position","abstract":"

    How the item should be positioned within the list.

    ","parent_name":"ScrollPosition"},"Structs/ScrollPosition/IfAlreadyVisible.html":{"name":"IfAlreadyVisible","abstract":"

    What action should be taken if an item is already partially visible within a list.

    ","parent_name":"ScrollPosition"},"Structs/RefreshControl/Title.html#/s:10ListableUI14RefreshControlV5TitleO6stringyAESScAEmF":{"name":"string(_:)","abstract":"

    Undocumented

    ","parent_name":"Title"},"Structs/RefreshControl/Title.html#/s:10ListableUI14RefreshControlV5TitleO10attributedyAESo18NSAttributedStringCcAEmF":{"name":"attributed(_:)","abstract":"

    Undocumented

    ","parent_name":"Title"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV12isRefreshingSbvp":{"name":"isRefreshing","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV5titleAC5TitleOSgvp":{"name":"title","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV9tintColorSo7UIColorCSgvp":{"name":"tintColor","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV02OnC0a":{"name":"OnRefresh","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV02onC0yycvp":{"name":"onRefresh","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV12isRefreshing5title9tintColor02onC0ACSb_AC5TitleOSgSo7UIColorCSgyyctcfc":{"name":"init(isRefreshing:title:tintColor:onRefresh:)","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl/Title.html":{"name":"Title","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/ItemPreviewAppearance.html#/s:10ListableUI21ItemPreviewAppearanceV7padding15backgroundColorAC12CoreGraphics7CGFloatV_So7UIColorCtcfc":{"name":"init(padding:backgroundColor:)","abstract":"

    Creates a new preview appearance.

    ","parent_name":"ItemPreviewAppearance"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV5width12CoreGraphics7CGFloatVvp":{"name":"width","abstract":"

    The width of the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV5stateAA0C5StateVvp":{"name":"state","abstract":"

    The ItemState to use in the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV10appearanceAA0cD10AppearanceVvp":{"name":"appearance","abstract":"

    The desired appearance of the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV4with5state10appearanceAE12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVtcfc":{"name":"init(with:state:appearance:)","abstract":"

    Creates a new preview with the desired options.

    ","parent_name":"Properties"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV4itemAA03AnyC0_pvp":{"name":"item","abstract":"

    The item being previewed by the preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV10propertiesAC10PropertiesVvp":{"name":"properties","abstract":"

    The properties of the current preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview/Properties.html":{"name":"Properties","abstract":"

    The properties of a preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ":{"name":"previews(for:with:)","abstract":"

    Creates and returns a SwiftUI view that contains individual previews for each of the provided","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_12CoreGraphics7CGFloatVAA0cD10AppearanceVtFZ":{"name":"withAllItemStates(for:width:appearance:)","abstract":"

    Creates and returns a SwiftUI view that contains individual previews for all the possible","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV_5width5state10appearanceAcA03AnyC0_p_12CoreGraphics7CGFloatVAA0C5StateVAA0cD10AppearanceVtcfc":{"name":"init(_:width:state:appearance:)","abstract":"

    Creates a new preview with the provided properties.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV_10propertiesAcA03AnyC0_p_AC10PropertiesVtcfc":{"name":"init(_:properties:)","abstract":"

    Creates a new preview with the provided properties.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"ItemPreview"},"Structs/LocalizedItemCollator/CollatedSection.html#/s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5titleSSvp":{"name":"title","abstract":"

    The title of section – a single letter like A, B, C, D, E, etc.","parent_name":"CollatedSection"},"Structs/LocalizedItemCollator/CollatedSection.html#/s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5itemsSayAA03AnyD0_pGvp":{"name":"items","abstract":"

    The sorted items in the collated sections.

    ","parent_name":"CollatedSection"},"Structs/LocalizedItemCollator.html#/s:10ListableUI21LocalizedItemCollatorV7collate9collation5itemsSayAC15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtFZ":{"name":"collate(collation:items:)","abstract":"

    Collates and returns the set of items into CollatedSections.","parent_name":"LocalizedItemCollator"},"Structs/LocalizedItemCollator.html#/s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ":{"name":"sections(collation:with:_:)","abstract":"

    Collates and returns the set of items into list Sections,","parent_name":"LocalizedItemCollator"},"Structs/LocalizedItemCollator/CollatedSection.html":{"name":"CollatedSection","abstract":"

    The output of the collator, with the collated title and items","parent_name":"LocalizedItemCollator"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV3oldShyAA13AnyIdentifierCGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV3newShyAA13AnyIdentifierCGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV3oldSo6CGRectVvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV3newSo6CGRectVvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV9displayedSayAA7AnyItem_pGvp":{"name":"displayed","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV12endedDisplaySayAA7AnyItem_pGvp":{"name":"endedDisplay","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV10hadChangesSbvp":{"name":"hadChanges","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/DidScroll.html#/s:10ListableUI17ListStateObserverV9DidScrollV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"DidScroll"},"Structs/ListStateObserver/DidScroll.html#/s:10ListableUI17ListStateObserverV9DidScrollV12positionInfoAA0cg8PositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"DidScroll"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates and optionally allows you to configure an observer.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV11OnDidScrolla":{"name":"OnDidScroll","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV11onDidScrollyyyAC0gH0VcF":{"name":"onDidScroll(_:)","abstract":"

    Registers a callback which will be called when the list view is scrolled, or is","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV16OnContentUpdateda":{"name":"OnContentUpdated","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV16onContentUpdatedyyyAC0gH0VcF":{"name":"onContentUpdated(_:)","abstract":"

    Registers a callback which will be called when the list view’s content is updated","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV19OnVisibilityChangeda":{"name":"OnVisibilityChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV19onVisibilityChangedyyyAC0gH0VcF":{"name":"onVisibilityChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s content is changed – eg through","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV14OnFrameChangeda":{"name":"OnFrameChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV14onFrameChangedyyyAC0gH0VcF":{"name":"onFrameChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s frame is changed.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV18OnSelectionChangeda":{"name":"OnSelectionChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV18onSelectionChangedyyyAC0gH0VcF":{"name":"onSelectionChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s selected items are changed by the user.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/DidScroll.html":{"name":"DidScroll","abstract":"

    Parameters available for OnDidScroll callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/ContentUpdated.html":{"name":"ContentUpdated","abstract":"

    Parameters available for OnContentUpdated callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/VisibilityChanged.html":{"name":"VisibilityChanged","abstract":"

    Parameters available for OnVisibilityChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/FrameChanged.html":{"name":"FrameChanged","abstract":"

    Parameters available for OnFrameChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/SelectionChanged.html":{"name":"SelectionChanged","abstract":"

    Parameters available for OnSelectionChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV12visibleItemsShyAA13AnyIdentifierCGvp":{"name":"visibleItems","abstract":"

    Which items within the list are currently visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV18isFirstItemVisibleSbvp":{"name":"isFirstItemVisible","abstract":"

    If the first item list is partially visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV17isLastItemVisibleSbvp":{"name":"isLastItemVisible","abstract":"

    If the last item list is partially visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV19visibleContentEdges017includingSafeAreaI0So10UIRectEdgeVAG_tF":{"name":"visibleContentEdges(includingSafeAreaEdges:)","abstract":"

    Used to retrieve the visible content edges for the list’s content.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV10scrollView12visibleItems18isFirstItemVisible0k4LastmN0ACSo08UIScrollH0C_ShyAA13AnyIdentifierCGS2btcfc":{"name":"init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)","abstract":"

    Creates a ListScrollPositionInfo for the provided scroll view.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV15animatesChangesSbvp":{"name":"animatesChanges","abstract":"

    If the changes applied should be animated or not.","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7contentAA7ContentVvp":{"name":"content","abstract":"

    The content displayed by the list.","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV11environmentAA0C11EnvironmentVvp":{"name":"environment","abstract":"

    The environment associated with the List.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV6layoutAA17LayoutDescriptionVvp":{"name":"layout","abstract":"

    The layout type to use with the list. Defaults to .list(), aka a list","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    The appearance to use with the list.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV21scrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"scrollIndicatorInsets","abstract":"

    The scroll insets to apply to the list view.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    The various behavior options to apply to the list, which affect how the user","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV13stateObserverAA0c5StateF0Vvp":{"name":"stateObserver","abstract":"

    The state reader to use with your list. A ListStateObserver","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7actionsAA0C7ActionsCSgvp":{"name":"actions","abstract":"

    The actions instance to use to control the list, eg to scroll to a given","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV16autoScrollActionAA04AutofG0Ovp":{"name":"autoScrollAction","abstract":"

    The auto scroll action to apply to the list. This allows you to","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV23accessibilityIdentifierSSSgvp":{"name":"accessibilityIdentifier","abstract":"

    The accessibility identifier assigned to the inner UICollectionView.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    The debugging identifier assigned to the list. Used for os_signpost integration","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7default4withACyACzXE_tFZ":{"name":"default(with:)","abstract":"

    An instance of ListProperties with sensible default values.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV15animatesChanges6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction23accessibilityIdentifier09debuggingQ05buildACSb_AA17LayoutDescriptionVAA10AppearanceVSo06UIEdgeK0VAA8BehaviorVAA04AutonO0OSSSgAWyACzXEtcfc":{"name":"init(animatesChanges:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:accessibilityIdentifier:debuggingIdentifier:build:)","abstract":"

    Create a new instance of ListProperties with the provided values.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV6modify5usingyyACzXE_tF":{"name":"modify(using:)","abstract":"

    Updates the ListProperties object with the changes in the provided builder.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV8modified5usingACyACzXE_tF":{"name":"modified(using:)","abstract":"

    Creates a new ListProperties object modified by the changes in the provided builder.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV3addyyAA7SectionVF":{"name":"add(_:)","abstract":"

    Adds a new section to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV2peoiyyACz_AA7SectionVtFZ":{"name":"+=(_:_:)","abstract":"

    Adds a new section to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV2peoiyyACz_SayAA7SectionVGtFZ":{"name":"+=(_:_:)","abstract":"

    Adds a list of new sections to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV14callAsFunction_5buildyx_yAA7SectionVzXEtSHRzlF":{"name":"callAsFunction(_:build:)","abstract":"

    Allows streamlined creation of sections when building a list.

    ","parent_name":"ListProperties"},"Structs/ListEnvironment.html#/s:10ListableUI15ListEnvironmentV5emptyACvpZ":{"name":"empty","abstract":"

    A default “empty” environment, with no values overridden.","parent_name":"ListEnvironment"},"Structs/ListEnvironment.html#/s:10ListableUI15ListEnvironmentVy5ValueQzxmcAA0cD3KeyRzluip":{"name":"subscript(_:)","abstract":"

    Gets or sets an environment value by its key.

    ","parent_name":"ListEnvironment"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    The direction the paging layout should occur in. Defaults to vertical.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp":{"name":"showsScrollIndicators","abstract":"

    If scroll indicators should be visible along the scrollable axis.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV10itemInsetsSo06UIEdgeF0Vvp":{"name":"itemInsets","abstract":"

    How far each item in the list should be inset from the edges of the view.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV9direction21showsScrollIndicators10itemInsetsAcA15LayoutDirectionO_SbSo06UIEdgeJ0Vtcfc":{"name":"init(direction:showsScrollIndicators:itemInsets:)","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV5width12CoreGraphics7CGFloatVvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV6height12CoreGraphics7CGFloatVvp":{"name":"height","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV7rotatesSbvp":{"name":"rotates","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV5width6height7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc":{"name":"init(width:height:rotates:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV12CGPointValue3forSo6CGSizeVAA0D9DirectionO_tF":{"name":"CGPointValue(for:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1x12CoreGraphics7CGFloatVvp":{"name":"x","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1y12CoreGraphics7CGFloatVvp":{"name":"y","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV7rotatesSbvp":{"name":"rotates","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1x1y7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc":{"name":"init(x:y:rotates:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV12CGPointValue3forSo0F0VAA0D9DirectionO_tF":{"name":"CGPointValue(for:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO9automaticyA2EmF":{"name":"automatic","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2EmF":{"name":"scrollableAxes","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO5neveryA2EmF":{"name":"never","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO6alwaysyA2EmF":{"name":"always","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabledSbvp":{"name":"isPagingEnabled","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30contentInsetAdjustmentBehaviorAC07ContentijK0Ovp":{"name":"contentInsetAdjustmentBehavior","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV20allowsBounceVerticalSbvp":{"name":"allowsBounceVertical","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV22allowsBounceHorizontalSbvp":{"name":"allowsBounceHorizontal","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV016allowsHorizontalE9IndicatorSbvp":{"name":"allowsHorizontalScrollIndicator","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV014allowsVerticalE9IndicatorSbvp":{"name":"allowsVerticalScrollIndicator","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabled30contentInsetAdjustmentBehavior20allowsBounceVertical0oP10Horizontal0oqE9Indicator0oreS0ACSb_AC07ContentlmN0OS4btcfc":{"name":"init(isPagingEnabled:contentInsetAdjustmentBehavior:allowsBounceVertical:allowsBounceHorizontal:allowsVerticalScrollIndicator:allowsHorizontalScrollIndicator:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html":{"name":"ContentInsetAdjustmentBehavior","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutDefaults.html#/s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAA04ItemghiJ0Vvp":{"name":"itemInsertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"ListLayoutDefaults"},"Structs/ListLayoutDefaults.html#/s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAcA04ItemghiJ0V_tcfc":{"name":"init(itemInsertAndRemoveAnimations:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutDefaults"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV7SectionV":{"name":"Section","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV13SupplementaryV":{"name":"Supplementary","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV4ItemV":{"name":"Item","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp":{"name":"padding","abstract":"

    The padding to place around the outside of the content of the list.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV5widthAA15WidthConstraintOvp":{"name":"width","abstract":"

    The width of the content of the list, which can be optionally constrained.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV27headerToFirstSectionSpacing12CoreGraphics7CGFloatVvp":{"name":"headerToFirstSectionSpacing","abstract":"

    The spacing between the list header and the first section.","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithNoFooter","abstract":"

    The spacing to apply between sections, if the previous section has no footer.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithFooter","abstract":"

    The spacing to apply between sections, if the previous section has a footer.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderBottomSpacing","abstract":"

    The spacing to apply below a section header, before its items.","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV11itemSpacing12CoreGraphics7CGFloatVvp":{"name":"itemSpacing","abstract":"

    The spacing between individual items within a section in a list.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"itemToSectionFooterSpacing","abstract":"

    The spacing between the last item in the section and the footer.","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV26lastSectionToFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"lastSectionToFooterSpacing","abstract":"

    The spacing between the last section and the footer of the list.","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV7padding5width27headerToFirstSectionSpacing05interkL12WithNoFooter0mklnP0019sectionHeaderBottomL004itemL00tikpL004lastkipL0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA6Utcfc":{"name":"init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)","abstract":"

    Creates a new Layout with the provided options.

    ","parent_name":"Layout"},"Structs/ListAppearance/Layout.html#/s:10ListableUI14ListAppearanceV6LayoutV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Easily mutate the Layout in place.

    ","parent_name":"Layout"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV10itemHeight12CoreGraphics7CGFloatVvp":{"name":"itemHeight","abstract":"

    The default height for items in a list.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderHeight","abstract":"

    The default height for section headers in a list.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp":{"name":"sectionFooterHeight","abstract":"

    The default height for section footer in a list.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"listHeaderHeight","abstract":"

    The default height for the list’s header.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp":{"name":"listFooterHeight","abstract":"

    The default height for the list’s footer.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp":{"name":"overscrollFooterHeight","abstract":"

    The default height for the list’s overscroll footer.

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV26itemPositionGroupingHeight12CoreGraphics7CGFloatVvp":{"name":"itemPositionGroupingHeight","abstract":"

    When providing the ItemPosition for items in a list, specifies the max spacing","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV10itemHeight013sectionHeaderG00h6FooterG004listiG00kjG0010overscrolljG00f16PositionGroupingG0AE12CoreGraphics7CGFloatV_A6Otcfc":{"name":"init(itemHeight:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:itemPositionGroupingHeight:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/ListAppearance/Sizing.html#/s:10ListableUI14ListAppearanceV6SizingV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV6sizingAC6SizingVvp":{"name":"sizing","abstract":"

    Default sizing attributes for content in the list.

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    Layout attributes for content in the list.

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"ListAppearance"},"Structs/ListAppearance.html#/s:10ListableUI14ListAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc":{"name":"init(stickySectionHeaders:sizing:layout:)","abstract":"

    Creates a new ListAppearance object.

    ","parent_name":"ListAppearance"},"Structs/ListAppearance/Sizing.html":{"name":"Sizing","abstract":"

    Sizing options for the list.

    ","parent_name":"ListAppearance"},"Structs/ListAppearance/Layout.html":{"name":"Layout","abstract":"

    Layout options for the list.

    ","parent_name":"ListAppearance"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp":{"name":"padding","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV5widthAA15WidthConstraintOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithNoFooter","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithFooter","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderBottomSpacing","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"itemToSectionFooterSpacing","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV7padding5width31interSectionSpacingWithNoFooter0hijkM0019sectionHeaderBottomJ006itemToimJ0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA3Rtcfc":{"name":"init(padding:width:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemToSectionFooterSpacing:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Sizing/ItemSize.html#/s:10ListableUI14GridAppearanceV6SizingV8ItemSizeO5fixedyAGSo6CGSizeVcAGmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"ItemSize"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV8itemSizeAE04ItemG0Ovp":{"name":"itemSize","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing/ItemSize.html":{"name":"ItemSize","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp":{"name":"sectionFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"listHeaderHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp":{"name":"listFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp":{"name":"overscrollFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV8itemSize19sectionHeaderHeight0h6FooterJ004listiJ00lkJ0010overscrollkJ0A2E04ItemG0O_12CoreGraphics7CGFloatVA4Ptcfc":{"name":"init(itemSize:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV6sizingAC6SizingVvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc":{"name":"init(stickySectionHeaders:sizing:layout:)","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/Sizing.html":{"name":"Sizing","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/Layout.html":{"name":"Layout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzctcAA04ListC0Rzlufc":{"name":"init(layoutType:appearance:)","abstract":"

    Creates a new layout description for the provided layout type, with the provided optional layout configuration.

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV17grid_experimentalyACyAA14GridAppearanceVzcFZ":{"name":"grid_experimental(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV4listyACyAA14ListAppearanceVzcFZ":{"name":"list(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV5pagedyACyAA15PagedAppearanceVzcFZ":{"name":"paged(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV11fromSectionAA0F0Vvp":{"name":"fromSection","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV13fromIndexPath10Foundation0fG0Vvp":{"name":"fromIndexPath","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV9toSectionAA0F0Vvp":{"name":"toSection","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV11toIndexPath10Foundation0fG0Vvp":{"name":"toIndexPath","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Sections.html#/s:10ListableUI10ReorderingV8SectionsO4sameyA2EmF":{"name":"same","abstract":"

    Undocumented

    ","parent_name":"Sections"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV8sectionsAC8SectionsOvp":{"name":"sections","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10CanReordera":{"name":"CanReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10canReorderSbAC6ResultVcSgvp":{"name":"canReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10DidReordera":{"name":"DidReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10didReorderyyAC6ResultVcvp":{"name":"didReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV8sections10canReorder03didF0A2C8SectionsO_SbAC6ResultVcSgyAJctcfc":{"name":"init(sections:canReorder:didReorder:)","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering/Sections.html":{"name":"Sections","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering/Result.html":{"name":"Result","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV10isSelected0E11HighlightedACSb_Sbtcfc":{"name":"init(isSelected:isHighlighted:)","abstract":"

    Undocumented

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV4cellACSo20UICollectionViewCellC_tcfc":{"name":"init(cell:)","abstract":"

    Undocumented

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV10isSelectedSbvp":{"name":"isSelected","abstract":"

    If the item is currently selected.

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV13isHighlightedSbvp":{"name":"isHighlighted","abstract":"

    If the item is currently highlighted.

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV8isActiveSbvp":{"name":"isActive","abstract":"

    If the item is either selected or highlighted.

    ","parent_name":"ItemState"},"Structs/ItemLayout.html#/s:10ListableUI10ItemLayoutV11itemSpacing12CoreGraphics7CGFloatVSgvp":{"name":"itemSpacing","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/ItemLayout.html#/s:10ListableUI10ItemLayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVSgvp":{"name":"itemToSectionFooterSpacing","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/ItemLayout.html#/s:10ListableUI10ItemLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/ItemLayout.html#/s:10ListableUI10ItemLayoutV11itemSpacing0e15ToSectionFooterF05widthAC12CoreGraphics7CGFloatVSg_AjA11CustomWidthOtcfc":{"name":"init(itemSpacing:itemToSectionFooterSpacing:width:)","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6boundsSo6CGRectVvp":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6centerSo7CGPointVvp":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV9transformSo17CGAffineTransformVvp":{"name":"transform","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV11transform3DSo13CATransform3DVvp":{"name":"transform3D","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV5alpha12CoreGraphics7CGFloatVvp":{"name":"alpha","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6zIndexSivp":{"name":"zIndex","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV5frameSo6CGRectVvp":{"name":"frame","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV7Preparea":{"name":"Prepare","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV02onD0yyAC10AttributesVzcvp":{"name":"onInsert","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV9onRemovalyyAC10AttributesVzcvp":{"name":"onRemoval","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV02onD00H7RemovalACyAC10AttributesVzc_yAGzctcfc":{"name":"init(onInsert:onRemoval:)","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10attributesACyAC10AttributesVzc_tcfc":{"name":"init(attributes:)","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html":{"name":"Attributes","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV4fadeACvpZ":{"name":"fade","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV5rightACvpZ":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV4leftACvpZ":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV3topACvpZ":{"name":"top","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV6bottomACvpZ":{"name":"bottom","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV9scaleDownACvpZ":{"name":"scaleDown","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV7scaleUpACvpZ":{"name":"scaleUp","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV5stateAA0D5StateVvp":{"name":"state","abstract":"

    The state of the Item currently displaying the content. Is it highlighted, selected, etc.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV8positionAA0D8PositionOvp":{"name":"position","abstract":"

    The position of the item within its section.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV10reorderingAA17ReorderingActionsCvp":{"name":"reordering","abstract":"

    Provides access to actions to handle re-ordering the content within the list.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV11environmentAA15ListEnvironmentVvp":{"name":"environment","abstract":"

    The environment of the containing list.","parent_name":"ApplyItemContentInfo"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV7content0D4ViewQzvp":{"name":"content","abstract":"

    The content view of the content.

    ","parent_name":"ItemContentViews"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV10background14BackgroundViewQzvp":{"name":"background","abstract":"

    The background view of the content.

    ","parent_name":"ItemContentViews"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV18selectedBackground08SelectedG4ViewQzvp":{"name":"selectedBackground","abstract":"

    The selected background view of the content.","parent_name":"ItemContentViews"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6sizingAA6SizingOSgvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6layoutAA0D6LayoutVSgvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV14selectionStyleAA0d9SelectionG0OSgvp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV25insertAndRemoveAnimationsAA0d6InsertghI0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV12swipeActionsAA05SwipeG13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6sizing6layout14selectionStyle25insertAndRemoveAnimations12swipeActionsACyxGAA6SizingOSg_AA0D6LayoutVSgAA0d9SelectionI0OSgAA0d6InsertklM0VSgAA05SwipeO13ConfigurationVSgtcfc":{"name":"init(sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:)","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/HeaderFooterLayout.html#/s:10ListableUI18HeaderFooterLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/HeaderFooterLayout.html#/s:10ListableUI18HeaderFooterLayoutV5widthAcA11CustomWidthO_tcfc":{"name":"init(width:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV7content0E4ViewQzvp":{"name":"content","abstract":"

    The content view of the content.

    ","parent_name":"HeaderFooterContentViews"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV10background14BackgroundViewQzvp":{"name":"background","abstract":"

    The background view of the content.

    ","parent_name":"HeaderFooterContentViews"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV7pressed21PressedBackgroundViewQzvp":{"name":"pressed","abstract":"

    The background view of the content that’s displayed while a press is active.

    ","parent_name":"HeaderFooterContentViews"},"Structs/ApplyHeaderFooterContentInfo.html#/s:10ListableUI28ApplyHeaderFooterContentInfoV11environmentAA15ListEnvironmentVvp":{"name":"environment","abstract":"

    The environment of the containing list.","parent_name":"ApplyHeaderFooterContentInfo"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV7contentxvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV6layoutAA0cD6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5OnTapa":{"name":"OnTap","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5onTapyxcSgvp":{"name":"onTap","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV_5buildACyxGx_yAEzXEtcfc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV_6sizing6layout5onTapACyxGx_AA6SizingOAA0cD6LayoutVyxcSgtcfc":{"name":"init(_:sizing:layout:onTap:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0jcD11ContentInfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV15anyIsEquivalent2toSbAA03AnycD0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV015newPresentationcD5State24performsContentCallbacksypSb_tF":{"name":"newPresentationHeaderFooterState(performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/EmbeddedList/Sizing.html#/s:10ListableUI12EmbeddedListV6SizingO7defaultyA2EmF":{"name":"default","abstract":"

    Falls back to the default sizing of Items in the list view.

    ","parent_name":"Sizing"},"Structs/EmbeddedList/Sizing.html#/s:10ListableUI12EmbeddedListV6SizingO5fixedyAE12CoreGraphics7CGFloatV_AItcAEmF":{"name":"fixed(width:height:)","abstract":"

    A fixed size item with the given width or height.

    ","parent_name":"Sizing"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV10propertiesAA0D10PropertiesVvp":{"name":"properties","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV17contentIdentifiers11AnyHashableVvp":{"name":"contentIdentifier","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV10identifier5buildACx_yAA0D10PropertiesVzXEtcSHRzlufc":{"name":"init(identifier:build:)","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP0D4ViewQa":{"name":"ContentView","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp":{"name":"identifier","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF":{"name":"apply(to:for:with:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList/Sizing.html":{"name":"Sizing","abstract":"

    How you specify sizing for an embedded list. The surface area","parent_name":"EmbeddedList"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV3oldACyxGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV3newACyxGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV3oldACyxGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV3newACyxGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnRemove.html#/s:10ListableUI4ItemV8OnRemoveV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnRemove"},"Structs/Item/OnRemove.html#/s:10ListableUI4ItemV8OnRemoveV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnRemove"},"Structs/Item/OnInsert.html#/s:10ListableUI4ItemV8OnInsertV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnInsert"},"Structs/Item/OnInsert.html#/s:10ListableUI4ItemV8OnInsertV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnInsert"},"Structs/Item/OnDeselect.html#/s:10ListableUI4ItemV10OnDeselectV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnDeselect"},"Structs/Item/OnDeselect.html#/s:10ListableUI4ItemV10OnDeselectV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnDeselect"},"Structs/Item/OnSelect.html#/s:10ListableUI4ItemV8OnSelectV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnSelect"},"Structs/Item/OnSelect.html#/s:10ListableUI4ItemV8OnSelectV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnSelect"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV07isFirsteF0Sbvp":{"name":"isFirstEndDisplay","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV07isFirstE0Sbvp":{"name":"isFirstDisplay","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item.html#/s:10ListableUI4ItemV10identifierAA13AnyIdentifierCvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV7contentxvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6layoutAA0C6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV14selectionStyleAA0c9SelectionE0Ovp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV25insertAndRemoveAnimationsAA0c6InsertefG0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV12swipeActionsAA05SwipeE13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10reorderingAA10ReorderingVSgvp":{"name":"reordering","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV9onDisplayyAC02OnE0Vyx_GcSgvp":{"name":"onDisplay","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV12onEndDisplayyAC02OneF0Vyx_GcSgvp":{"name":"onEndDisplay","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onSelectyAC02OnE0Vyx_GcSgvp":{"name":"onSelect","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10onDeselectyAC02OnE0Vyx_GcSgvp":{"name":"onDeselect","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onInsertyAC02OnE0Vyx_GcSgvp":{"name":"onInsert","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onRemoveyAC02OnE0Vyx_GcSgvp":{"name":"onRemove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6onMoveyAC02OnE0Vyx_GcSgvp":{"name":"onMove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onUpdateyAC02OnE0Vyx_GcSgvp":{"name":"onUpdate","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV_5buildACyxGx_yAEzXEtcfc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV_6sizing6layout14selectionStyle25insertAndRemoveAnimations12swipeActions10reordering9onDisplay0o3EndP00O6Select0O8Deselect0O6Insert0oJ00O4Move0O6UpdateACyxGx_AA6SizingOSgAA0C6LayoutVSgAA0c9SelectionG0OSgAA0ctijK0VSgAA05SwipeM13ConfigurationVSgAA10ReorderingVSgyAC02OnP0Vyx_GcSgyAC02OnqP0Vyx_GcSgyAC02OnR0Vyx_GcSgyAC02OnS0Vyx_GcSgyAC02OnT0Vyx_GcSgyAC02OnJ0Vyx_GcSgyAC02OnU0Vyx_GcSgyAC02OnV0Vyx_GcSgtcfc":{"name":"init(_:sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10anyContentypvp":{"name":"anyContent","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV15anyIsEquivalent2toSbAA03AnyC0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV11anyWasMoved10comparedToSbAA03AnyC0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV015newPresentationC5State4with15updateCallbacks015performsContentI0ypAA0cF12DependenciesV_AA06UpdateI0CSbtF":{"name":"newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnDisplay.html":{"name":"OnDisplay","abstract":"

    Value passed to the onDisplay callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnEndDisplay.html":{"name":"OnEndDisplay","abstract":"

    Value passed to the onEndDisplay callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnSelect.html":{"name":"OnSelect","abstract":"

    Value passed to the onSelect callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnDeselect.html":{"name":"OnDeselect","abstract":"

    Value passed to the onDeselect callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnInsert.html":{"name":"OnInsert","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnRemove.html":{"name":"OnRemove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnMove.html":{"name":"OnMove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnUpdate.html":{"name":"OnUpdate","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemVA2A12EmbeddedListVRszrlE4list_6sizing5buildACyAEGqd___AE6SizingOyAA0E10PropertiesVzXEtSHRd__lFZ":{"name":"list(_:sizing:build:)","abstract":"

    Creates an Item which can be used to embed a list inside another list,","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemVA2A019LocalizedCollatableC7ContentRzrlE15collationStringSSvp":{"name":"collationString","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Content.html#/s:10ListableUI7ContentV10identifiers11AnyHashableVSgvp":{"name":"identifier","abstract":"

    The identifier for the content, defaults to nil.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14refreshControlAA07RefreshE0VSgvp":{"name":"refreshControl","abstract":"

    The refresh control, if any, associated with the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV6headerAA15AnyHeaderFooter_pSgvp":{"name":"header","abstract":"

    The header for the list, usually displayed before all other content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV6footerAA15AnyHeaderFooter_pSgvp":{"name":"footer","abstract":"

    The footer for the list, usually displayed after all other content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV16overscrollFooterAA09AnyHeaderE0_pSgvp":{"name":"overscrollFooter","abstract":"

    The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame,","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8sectionsSayAA7SectionVGvp":{"name":"sections","abstract":"

    All sections in the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV16nonEmptySectionsSayAA7SectionVGvp":{"name":"nonEmptySections","abstract":"

    Any sections that have a non-zero number of items.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV9itemCountSivp":{"name":"itemCount","abstract":"

    The total number of items in all of the sections in the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8contains3anySbShyAA0C7FiltersOG_tF":{"name":"contains(any:)","abstract":"

    Check if the content contains any of the given types, which you specify via the filters","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV4withACyACzXE_tcfc":{"name":"init(with:)","abstract":"

    Creates a new instance, configured as needed via the provided builder block.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV10identifier14refreshControl6header6footer16overscrollFooter8sectionsACs11AnyHashableVSg_AA07RefreshF0VSgAA0l6HeaderJ0_pSgA2QSayAA7SectionVGtcfc":{"name":"init(identifier:refreshControl:header:footer:overscrollFooter:sections:)","abstract":"

    Creates a new instance with the provided parameters.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV9firstItemAA03AnyE0_pSgvp":{"name":"firstItem","abstract":"

    The first Item in the content. Returns nil if there is no content in any section.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8lastItemAA03AnyE0_pSgvp":{"name":"lastItem","abstract":"

    The last Item in the content. Returns nil if there is no content in any section.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns the Item at the given IndexPath.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14firstIndexPath3for10Foundation0eF0VSgAA13AnyIdentifierC_tF":{"name":"firstIndexPath(for:)","abstract":"

    Returns the first IndexPath for the contained Item with the given AnyIdentifier,","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV13lastIndexPath10Foundation0eF0VSgyF":{"name":"lastIndexPath()","abstract":"

    Returns the IndexPath of the last Item in the content.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV11removeEmptyyyF":{"name":"removeEmpty()","abstract":"

    Removes all Sections that do not contain any Items.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV3addyyAA7SectionVF":{"name":"add(_:)","abstract":"

    Appends a Section to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV2peoiyyACz_AA7SectionVtFZ":{"name":"+=(_:_:)","abstract":"

    Appends a Section to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV2peoiyyACz_SayAA7SectionVGtFZ":{"name":"+=(_:_:)","abstract":"

    Appends a list of Sections to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14callAsFunction_5buildyx_yAA7SectionVzXEtSHRzlF":{"name":"callAsFunction(_:build:)","abstract":"

    Allows streamlined creation of sections when building a list, leveraging Swift’s callAsFunction","parent_name":"Content"},"Structs/Color.html#/s:10ListableUI5ColorV12wrappedValueSo7UIColorCvp":{"name":"wrappedValue","abstract":"

    The underlying color value.

    ","parent_name":"Color"},"Structs/Color.html#/s:10ListableUI5ColorVyACSo7UIColorCcfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"Color"},"Structs/Color.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Color"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO3topyA2GmF":{"name":"top","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6centeryA2GmF":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6bottomyA2GmF":{"name":"bottom","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV12alwaysBounceSbvp":{"name":"alwaysBounce","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV9alignmentAE9AlignmentOvp":{"name":"alignment","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV12alwaysBounce9alignmentAESb_AE9AlignmentOtcfc":{"name":"init(alwaysBounce:alignment:)","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow/Alignment.html":{"name":"Alignment","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF":{"name":"none","abstract":"

    The list view does not allow any selections.

    ","parent_name":"SelectionMode"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO6singleyAESb_tcAEmF":{"name":"single(clearsSelectionOnViewWillAppear:)","abstract":"

    The list view allows single selections. When an item is selected, the previously selected item (if any)","parent_name":"SelectionMode"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF":{"name":"multiple","abstract":"

    The list view allows multiple selections. It is your responsibility to update the content","parent_name":"SelectionMode"},"Structs/Behavior/ScrollsToTop.html#/s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF":{"name":"disabled","abstract":"

    No action is performed when the user taps on the status bar.

    ","parent_name":"ScrollsToTop"},"Structs/Behavior/ScrollsToTop.html#/s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF":{"name":"enabled","abstract":"

    When the user taps on the status bar, scroll to the top of the list.

    ","parent_name":"ScrollsToTop"},"Structs/Behavior/KeyboardAdjustmentMode.html#/s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF":{"name":"none","abstract":"

    The contentInset of the list is not adjusted when the keyboard appears or disappears.

    ","parent_name":"KeyboardAdjustmentMode"},"Structs/Behavior/KeyboardAdjustmentMode.html#/s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF":{"name":"adjustsWhenVisible","abstract":"

    The contentInset of the list is adjusted when the keyboard appears or disappears.

    ","parent_name":"KeyboardAdjustmentMode"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp":{"name":"keyboardDismissMode","abstract":"

    How the keyboard should be dismissed (if at all) based on scrolling of the list view.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp":{"name":"keyboardAdjustmentMode","abstract":"

    How to adjust the contentInset of the list when the keyboard visibility changes.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp":{"name":"scrollsToTop","abstract":"

    How the list should react when the user taps the application status bar.","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp":{"name":"selectionMode","abstract":"

    How the list should respond to selection attempts.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp":{"name":"underflow","abstract":"

    How the list should behave when its content takes up less space than is available in the list view.","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp":{"name":"canCancelContentTouches","abstract":"

    A Boolean value that controls whether touches in the content view always lead to tracking.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV20delaysContentTouchesSbvp":{"name":"delaysContentTouches","abstract":"

    A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV15isPagingEnabledSbvp":{"name":"isPagingEnabled","abstract":"

    Is paging enabled on the underlying scroll view.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP015isPagingEnabledACSo020UIScrollViewKeyboardeF0V_AC0wgF0OAC07ScrollsiJ0OAC09SelectionF0OAC9UnderflowVS3btcfc":{"name":"init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:)","abstract":"

    Creates a new Behavior based on the provided parameters.

    ","parent_name":"Behavior"},"Structs/Behavior/KeyboardAdjustmentMode.html":{"name":"KeyboardAdjustmentMode","abstract":"

    How to adjust the contentInset of the list when the keyboard visibility changes.

    ","parent_name":"Behavior"},"Structs/Behavior/ScrollsToTop.html":{"name":"ScrollsToTop","abstract":"

    How to react when the user taps on the status bar of the application.

    ","parent_name":"Behavior"},"Structs/Behavior/SelectionMode.html":{"name":"SelectionMode","abstract":"

    The selection mode of the list view, which controls how many items (if any) can be selected at once.

    ","parent_name":"Behavior"},"Structs/Behavior/Underflow.html":{"name":"Underflow","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV15backgroundColorSo7UIColorCvp":{"name":"backgroundColor","abstract":"

    The background color for the list.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV21showsScrollIndicatorsSbvp":{"name":"showsScrollIndicators","abstract":"

    If the list should display its scroll indicators.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV15backgroundColor21showsScrollIndicators9configureACSo7UIColorC_SbyACzXEtcfc":{"name":"init(backgroundColor:showsScrollIndicators:configure:)","abstract":"

    Creates a new appearance object with the provided options.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV22defaultBackgroundColorSo7UIColorCvpZ":{"name":"defaultBackgroundColor","abstract":"

    The default background color for the Appearance.

    ","parent_name":"Appearance"},"Structs/Appearance.html":{"name":"Appearance","abstract":"

    Contains all the properties which affect the appearance of all possible kinds of list layouts.

    "},"Structs/Behavior.html":{"name":"Behavior","abstract":"

    Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior"},"Structs/Color.html":{"name":"Color","abstract":"

    A color wrapper which provides equatability for"},"Structs/Content.html":{"name":"Content","abstract":"

    Undocumented

    "},"Structs/Item.html":{"name":"Item","abstract":"

    Undocumented

    "},"Structs/EmbeddedList.html":{"name":"EmbeddedList","abstract":"

    Describes item content which can be used to embed a list inside another list,"},"Structs/HeaderFooter.html":{"name":"HeaderFooter","abstract":"

    Undocumented

    "},"Structs/ApplyHeaderFooterContentInfo.html":{"name":"ApplyHeaderFooterContentInfo","abstract":"

    Information about the current state of the content, which is passed to apply(to:for:with:)"},"Structs/HeaderFooterContentViews.html":{"name":"HeaderFooterContentViews","abstract":"

    The views owned by the item content, passed to the apply(to:) method to theme and provide content.

    "},"Structs/HeaderFooterLayout.html":{"name":"HeaderFooterLayout","abstract":"

    Undocumented

    "},"Structs.html#/s:10ListableUI21ItemStateDependenciesV":{"name":"ItemStateDependencies","abstract":"

    Undocumented

    "},"Structs/DefaultItemProperties.html":{"name":"DefaultItemProperties","abstract":"

    Allows specifying default properties to apply to an item when it is initialized,"},"Structs/ItemContentViews.html":{"name":"ItemContentViews","abstract":"

    The views owned by the item content, passed to the apply(to:) method to theme and provide content.

    "},"Structs/ApplyItemContentInfo.html":{"name":"ApplyItemContentInfo","abstract":"

    Information about the current state of the content, which is passed to apply(to:for:with:)"},"Structs/ItemInsertAndRemoveAnimations.html":{"name":"ItemInsertAndRemoveAnimations","abstract":"

    Undocumented

    "},"Structs/ItemLayout.html":{"name":"ItemLayout","abstract":"

    Undocumented

    "},"Structs/ItemState.html":{"name":"ItemState","abstract":"

    Undocumented

    "},"Structs/Reordering.html":{"name":"Reordering","abstract":"

    Undocumented

    "},"Structs/LayoutDescription.html":{"name":"LayoutDescription","abstract":"

    A LayoutDescription, well, describes the type of and properties of a layout to apply to a list view.

    "},"Structs/GridAppearance.html":{"name":"GridAppearance","abstract":"

    Undocumented

    "},"Structs/ListAppearance.html":{"name":"ListAppearance","abstract":"

    ListAppearance defines the appearance and layout attribute for list layouts within a Listable list.

    "},"Structs/ListLayoutAttributes.html":{"name":"ListLayoutAttributes","abstract":"

    Undocumented

    "},"Structs/ListLayoutDefaults.html":{"name":"ListLayoutDefaults","abstract":"

    Undocumented

    "},"Structs/ListLayoutScrollViewProperties.html":{"name":"ListLayoutScrollViewProperties","abstract":"

    Undocumented

    "},"Structs/ListLayoutPoint.html":{"name":"ListLayoutPoint","abstract":"

    Undocumented

    "},"Structs/ListLayoutSize.html":{"name":"ListLayoutSize","abstract":"

    Undocumented

    "},"Structs/PagedAppearance.html":{"name":"PagedAppearance","abstract":"

    Describes the available appearance configuration options for a paged list layout."},"Structs/ListEnvironment.html":{"name":"ListEnvironment","abstract":"

    An environment of keys and values that are passed to every ItemContent and HeaderFooter"},"Structs/ListProperties.html":{"name":"ListProperties","abstract":"

    The ListProperties object describes all of the given values needed to configure"},"Structs/ListScrollPositionInfo.html":{"name":"ListScrollPositionInfo","abstract":"

    Information about the current scroll position of a list,"},"Structs/ListStateObserver.html":{"name":"ListStateObserver","abstract":"

    Allows reading state and events based on state changes within the list view."},"Structs/LocalizedItemCollator.html":{"name":"LocalizedItemCollator","abstract":"

    If you’re looking for the equivalent of UILocalizedIndexedCollation for lists,"},"Structs/ItemPreview.html":{"name":"ItemPreview","abstract":"

    A SwiftUI view that you can use to preview your Item or ItemContent"},"Structs/ItemPreviewAppearance.html":{"name":"ItemPreviewAppearance","abstract":"

    The appearance options for a preview item.

    "},"Structs/RefreshControl.html":{"name":"RefreshControl","abstract":"

    Undocumented

    "},"Structs/ScrollPosition.html":{"name":"ScrollPosition","abstract":"

    Specifies how to position an item in a list when requesting the list scrolls to it.

    "},"Structs/Section.html":{"name":"Section","abstract":"

    Undocumented

    "},"Structs/HorizontalPadding.html":{"name":"HorizontalPadding","abstract":"

    Undocumented

    "},"Structs/SwipeActionsConfiguration.html":{"name":"SwipeActionsConfiguration","abstract":"

    Use SwipeActionsConfiguration to configure an item with SwipeActions."},"Structs/SwipeAction.html":{"name":"SwipeAction","abstract":"

    Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.

    "},"Protocols/AnySectionInfo.html#/s:10ListableUI14AnySectionInfoP13anyIdentifierAA0cG0Cvp":{"name":"anyIdentifier","abstract":"

    Undocumented

    ","parent_name":"AnySectionInfo"},"Protocols/AnySectionInfo.html#/s:10ListableUI14AnySectionInfoP11anyWasMoved10comparedToSbAaB_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"AnySectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoP10identifierAA10IdentifierCyxGvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoP8wasMoved10comparedToSbx_tF":{"name":"wasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoPAAE13anyIdentifierAA03AnyF0Cvp":{"name":"anyIdentifier","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoPAAE11anyWasMoved10comparedToSbAA03AnycD0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/AnyLocalizedCollatableItem.html#/s:10ListableUI26AnyLocalizedCollatableItemP15collationStringSSvp":{"name":"collationString","abstract":"

    Undocumented

    ","parent_name":"AnyLocalizedCollatableItem"},"Protocols/LocalizedCollatableItemContent.html#/s:10ListableUI30LocalizedCollatableItemContentP15collationStringSSvp":{"name":"collationString","abstract":"

    A string that represents the primary content of your ItemContent; usually a name or title.

    ","parent_name":"LocalizedCollatableItemContent"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP5StateQa":{"name":"State","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP7content4withADyAA0E5StateCy0H0QzG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP7content4withAA7ContentVAA0E5StateCy0I0QzG_tF":{"name":"content(with:)","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListEnvironmentKey.html#/s:10ListableUI18ListEnvironmentKeyP5ValueQa":{"name":"Value","abstract":"

    The type of value stored by this key.

    ","parent_name":"ListEnvironmentKey"},"Protocols/ListEnvironmentKey.html#/s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ":{"name":"defaultValue","abstract":"

    The default value that will be vended by an Environment for this key if no other value has been set.

    ","parent_name":"ListEnvironmentKey"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp":{"name":"scrollViewProperties","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP9directionAA0E9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF":{"name":"updateLayout(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF":{"name":"layout(delegate:in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP11setZIndexesyyF":{"name":"setZIndexes()","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE19visibleContentFrame3forSo6CGRectVSo16UICollectionViewC_tF":{"name":"visibleContentFrame(for:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE36positionStickySectionHeadersIfNeeded2inySo16UICollectionViewC_tF":{"name":"positionStickySectionHeadersIfNeeded(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF":{"name":"updateOverscrollFooterPosition(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF":{"name":"adjustPositionsForLayoutUnderflow(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF":{"name":"createEmptyLayout(appearance:behavior:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior8delegateAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewD8Delegate_ptF":{"name":"createPopulatedLayout(appearance:behavior:delegate:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF":{"name":"shouldRebuild(layout:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF":{"name":"isSameLayoutType(as:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP0D10AppearanceQa":{"name":"LayoutAppearance","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ":{"name":"defaults","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp":{"name":"layoutAppearance","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc":{"name":"init(layoutAppearance:appearance:behavior:content:)","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzc_tFZ":{"name":"describe(appearance:)","abstract":"

    Creates a new layout description for a list layout, with the provided optional layout configuration.

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE9directionAA0D9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/CollectionViewLayoutDelegate.html#/s:10ListableUI28CollectionViewLayoutDelegateP04listdE20UpdatedItemPositionsyySo012UICollectionD0CF":{"name":"listViewLayoutUpdatedItemPositions(_:)","abstract":"

    Undocumented

    ","parent_name":"CollectionViewLayoutDelegate"},"Protocols/CollectionViewLayoutDelegate.html#/s:10ListableUI28CollectionViewLayoutDelegateP04listE7Content8defaultsAA04ListeH0CAA0jE8DefaultsV_tF":{"name":"listLayoutContent(defaults:)","abstract":"

    Undocumented

    ","parent_name":"CollectionViewLayoutDelegate"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP0cD4TypeQa":{"name":"ItemContentType","abstract":"

    The type of ItemContent associated with this coordinator.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp":{"name":"actions","abstract":"

    The available actions you can perform on the coordinated Item. Eg, updating it to a new value.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp":{"name":"info","abstract":"

    Info about the coordinated Item, such as its original and current value.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF":{"name":"wasInserted(_:)","abstract":"

    Invoked on the coordinator when it is first created and configured.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF":{"name":"wasRemoved(_:)","abstract":"

    Invoked on the coordinator when its owned item is removed from the list due to","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF":{"name":"wasMoved(_:)","abstract":"

    Invoked on the coordinator when its owned item is moved inside a list due to its","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF":{"name":"wasUpdated(_:)","abstract":"

    Invoked on the coordinator when an external update is pushed onto the owned Item.","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4Viewa":{"name":"View","abstract":"

    The view type associated with the item.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp":{"name":"view","abstract":"

    The view, if any, currently used to display the item.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11willDisplay4withy0cD4Type_0D4ViewQZ_tF":{"name":"willDisplay(with:)","abstract":"

    Invoked when the list is about to begin displaying the item with the given view.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP13didEndDisplay4withy0cD4Type_0D4ViewQZ_tF":{"name":"didEndDisplay(with:)","abstract":"

    Invoked when the list is about to complete displaying the item with the given view.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF":{"name":"wasSelected()","abstract":"

    Invoked when the item is selected, via either user interaction or the selectionStyle.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF":{"name":"wasDeselected()","abstract":"

    Invoked when the item is deselected, via either user interaction or the selectionStyle.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP05swipeF5Width12CoreGraphics7CGFloatVvp":{"name":"swipeActionsWidth","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP16didPerformActionxySbc_tcfc":{"name":"init(didPerformAction:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP5apply7actionsyAA0eF13ConfigurationV_tF":{"name":"apply(actions:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP5apply5stateyAA0E11ActionStateO_tF":{"name":"apply(state:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp":{"name":"identifier","abstract":"

    Identifies the content across updates to the list. This value must remain the same,","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp":{"name":"defaultItemProperties","abstract":"

    Default values to assign to various properties on the Item which wraps","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Called when rendering the content. This is where you should push data from your","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF":{"name":"wasMoved(comparedTo:)","abstract":"

    Return true if the content’s sort changed based on the old value passed into the function.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","abstract":"

    Return false if the content’ changed based on the old value passed into the function.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP16SwipeActionsViewQa":{"name":"SwipeActionsView","abstract":"

    The view type to use to render swipe actions (delete, etc) for this content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP0D4ViewQa":{"name":"ContentView","abstract":"

    The content view used to draw the content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","abstract":"

    Create and return a new content view used to render the content.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP11CoordinatorQa":{"name":"Coordinator","abstract":"

    The coordinator type to use to manage the live state of the Item and ItemContent,","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP18CoordinatorActionsa":{"name":"CoordinatorActions","abstract":"

    The actions passed to the coordinator.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP15CoordinatorInfoa":{"name":"CoordinatorInfo","abstract":"

    The info passed to the coordinator.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF":{"name":"makeCoordinator(actions:info:)","abstract":"

    Creates a new coordinator with the provided actions and info.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP14BackgroundViewQa":{"name":"BackgroundView","abstract":"

    The background view used to draw the background of the content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ":{"name":"createReusableBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s background.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP22SelectedBackgroundViewQa":{"name":"SelectedBackgroundView","abstract":"

    The selected background view used to draw the background of the content when it is selected or highlighted.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ":{"name":"createReusableSelectedBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s selected background.

    ","parent_name":"ItemContent"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP11anyWasMoved10comparedToSbAA0cD0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP15anyIsEquivalent2toSbAA0cD0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP015newPresentationD5State4with15updateCallbacks015performsContentK0ypAA0dH12DependenciesV_AA06UpdateK0CSbtF":{"name":"newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10identifierAA0C10IdentifierCvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10anyContentypvp":{"name":"anyContent","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP6layoutAA0D6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP14selectionStyleAA0d9SelectionF0Ovp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP25insertAndRemoveAnimationsAA0d6InsertfgH0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP12swipeActionsAA05SwipeF13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10reorderingAA10ReorderingVSgvp":{"name":"reordering","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP5apply2to3for4withyAA0cdE5ViewsVyxG_AA11ApplyReasonOAA0kcdE4InfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP0E4ViewQa":{"name":"ContentView","abstract":"

    The content view used to draw the content.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","abstract":"

    Create and return a new content view used to render the content.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP14BackgroundViewQa":{"name":"BackgroundView","abstract":"

    The background view used to draw the background of the content.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ":{"name":"createReusableBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s background.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP21PressedBackgroundViewQa":{"name":"PressedBackgroundView","abstract":"

    The selected background view used to draw the background of the content when it is selected or highlighted.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ":{"name":"createReusablePressedBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s pressed background.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentPAASQRzrlE12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","parent_name":"HeaderFooterContent"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP6layoutAA0dE6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0ldE11ContentInfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP15anyIsEquivalent2toSbAA0cdE0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP015newPresentationdE5State24performsContentCallbacksypSb_tF":{"name":"newPresentationHeaderFooterState(performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter.html#/s:10ListableUI15AnyHeaderFooterP6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter"},"Protocols/AnyHeaderFooter.html#/s:10ListableUI15AnyHeaderFooterP6layoutAA0dE6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter"},"Protocols/AnyHeaderFooter.html":{"name":"AnyHeaderFooter","abstract":"

    Undocumented

    "},"Protocols/AnyHeaderFooter_Internal.html":{"name":"AnyHeaderFooter_Internal","abstract":"

    Undocumented

    "},"Protocols/HeaderFooterContent.html":{"name":"HeaderFooterContent","abstract":"

    A HeaderFooterContent is a type which specifies the content of a header, footer,"},"Protocols/AnyItem.html":{"name":"AnyItem","abstract":"

    Undocumented

    "},"Protocols/AnyItem_Internal.html":{"name":"AnyItem_Internal","abstract":"

    Undocumented

    "},"Protocols/ItemContent.html":{"name":"ItemContent","abstract":"

    An ItemContent is a type used to provide the content of an Item"},"Protocols/ItemContentSwipeActionsView.html":{"name":"ItemContentSwipeActionsView","abstract":"

    Conform to this protocol to implement a completely custom swipe action view.

    "},"Protocols/ItemContentCoordinator.html":{"name":"ItemContentCoordinator","abstract":"

    A type which lets you interactively manage the contents of an Item or ItemContent"},"Protocols/CollectionViewLayoutDelegate.html":{"name":"CollectionViewLayoutDelegate","abstract":"

    Undocumented

    "},"Protocols/ListLayout.html":{"name":"ListLayout","abstract":"

    Undocumented

    "},"Protocols/AnyLayoutDescriptionConfiguration.html":{"name":"AnyLayoutDescriptionConfiguration","abstract":"

    Undocumented

    "},"Protocols/AnyListLayout.html":{"name":"AnyListLayout","abstract":"

    Undocumented

    "},"Protocols/ListLayoutAppearance.html":{"name":"ListLayoutAppearance","abstract":"

    Undocumented

    "},"Protocols/ListEnvironmentKey.html":{"name":"ListEnvironmentKey","abstract":"

    Defines a value stored in the ListEnvironment of a list.

    "},"Protocols/ListViewSource.html":{"name":"ListViewSource","abstract":"

    Undocumented

    "},"Protocols/LocalizedCollatableItemContent.html":{"name":"LocalizedCollatableItemContent","abstract":"

    If you would like to make your ItemContent work with the LocalizedItemCollator,"},"Protocols/AnyLocalizedCollatableItem.html":{"name":"AnyLocalizedCollatableItem","abstract":"

    Represents an AnyItem which can be collated, via its vended collationString.

    "},"Protocols/SectionInfo.html":{"name":"SectionInfo","abstract":"

    Undocumented

    "},"Protocols/AnySectionInfo.html":{"name":"AnySectionInfo","abstract":"

    Undocumented

    "},"Functions.html#/s:10ListableUI13listableFatal_4file4lines5NeverOSSyXK_s12StaticStringVSutF":{"name":"listableFatal(_:file:line:)","abstract":"

    Undocumented

    "},"Functions.html#/s:10ListableUI20listablePrecondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF":{"name":"listablePrecondition(_:_:file:line:)","abstract":"

    Undocumented

    "},"Extensions/Set.html#/s:Sh10ListableUIAA15ScrollAnimationO0D7OptionsORszrlE7defaultShyAEGvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"Set"},"Extensions/UIRectEdge.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"UIRectEdge"},"Extensions/SectionedDiff.html#/SectionChanges":{"name":"SectionChanges","parent_name":"SectionedDiff"},"Extensions/SectionedDiff.html#/ItemChanges":{"name":"ItemChanges","parent_name":"SectionedDiff"},"Extensions/SectionedDiff.html":{"name":"SectionedDiff"},"Extensions/UIRectEdge.html":{"name":"UIRectEdge"},"Extensions/Set.html":{"name":"Set"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO4leftyA2EmF":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO6centeryA2EmF":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO5rightyA2EmF":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO10originWith06parentD05width7padding12CoreGraphics7CGFloatVAL_AlA17HorizontalPaddingVtF":{"name":"originWith(parentWidth:width:padding:)","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V7paddingAA17HorizontalPaddingVvp":{"name":"padding","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V5widthAA0D10ConstraintOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V9alignmentAC9AlignmentOvp":{"name":"alignment","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V7padding5width9alignmentAeA17HorizontalPaddingV_AA0D10ConstraintOAC9AlignmentOtcfc":{"name":"init(padding:width:alignment:)","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V8position4withAC8PositionVSo6CGSizeV_tF":{"name":"position(with:)","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO7defaultyA2CmF":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO4fillyA2CmF":{"name":"fill","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO6customyA2C0C0VcACmF":{"name":"custom(_:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO5merge4withA2C_tF":{"name":"merge(with:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO8position4with07defaultD0AC8PositionVSo6CGSizeV_12CoreGraphics7CGFloatVtF":{"name":"position(with:defaultWidth:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth/Custom.html":{"name":"Custom","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth/Alignment.html":{"name":"Alignment","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO8PositionV":{"name":"Position","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO02noD0yA2CmF":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO5fixedyAC12CoreGraphics7CGFloatVcACmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO6atMostyAC12CoreGraphics7CGFloatVcACmF":{"name":"atMost(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO5clampy12CoreGraphics7CGFloatVAGF":{"name":"clamp(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO7defaultyA2ImF":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO5fixedyAI12CoreGraphics7CGFloatVcAImF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO5value4with12CoreGraphics7CGFloatVAN_tF":{"name":"value(with:)","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO02noD0yA2GmF":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO7atLeastyA2G5ValueOcAGmF":{"name":"atLeast(_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO6atMostyAG12CoreGraphics7CGFloatVcAGmF":{"name":"atMost(_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO6withinyA2G5ValueO_12CoreGraphics7CGFloatVtcAGmF":{"name":"within(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis/Value.html":{"name":"Value","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5clamp_4with12CoreGraphics7CGFloatVAL_ALtF":{"name":"clamp(_:with:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5widthAE4AxisOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV6heightAE4AxisOvp":{"name":"height","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV02noD0AEvpZ":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintVyA2E4AxisOcfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5width6heightA2E4AxisO_AItcfc":{"name":"init(width:height:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5clamp_4withSo6CGSizeVAI_AItF":{"name":"clamp(_:with:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint/Axis.html":{"name":"Axis","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing.html#/s:10ListableUI6SizingO7defaultyA2CmF":{"name":"default","abstract":"

    The default size from the list’s appearance is used. The size is not dynamic at all.

    ","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO5fixedyAC12CoreGraphics7CGFloatV_AGtcACmF":{"name":"fixed(width:height:)","abstract":"

    Fixes the size to the absolute value passed in.

    ","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO8thatFitsyA2C10ConstraintVcACmF":{"name":"thatFits(_:)","abstract":"

    Sizes the item by calling sizeThatFits on its underlying view type.","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO10autolayoutyA2C10ConstraintVcACmF":{"name":"autolayout(_:)","abstract":"

    Sizes the item by calling systemLayoutSizeFitting on its underlying view type.","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO11MeasureInfoV":{"name":"MeasureInfo","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Enums/Sizing/Constraint.html":{"name":"Constraint","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO14curveEaseInOutyA2EmF":{"name":"curveEaseInOut","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO11curveEaseInyA2EmF":{"name":"curveEaseIn","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO12curveEaseOutyA2EmF":{"name":"curveEaseOut","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO11curveLinearyA2EmF":{"name":"curveLinear","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO4noneyA2CmF":{"name":"none","abstract":"

    No animation is performed.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO7defaultyA2CmF":{"name":"default","abstract":"

    A default animation is performed. This is the same as .custom().

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO6customyACSd_ShyAC0D7OptionsOGtcACmF":{"name":"custom(duration:options:)","abstract":"

    A custom animation is performed.","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO6springyACSd_So24UISpringTimingParametersCtcACmF":{"name":"spring(duration:timing:)","abstract":"

    Undocumented

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO3and4withACSb_tF":{"name":"and(with:)","abstract":"

    Ands the animation with the provided bool, returning the animation if true, and .none if false.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO7perform10animations10completionyyyc_ySbctF":{"name":"perform(animations:completion:)","abstract":"

    Performs the provided animations for the ScrollAnimation.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation/AnimationOptions.html":{"name":"AnimationOptions","abstract":"

    The animations options available for the ScrollAnimation.

    ","parent_name":"ScrollAnimation"},"Enums/ListSizing.html#/s:10ListableUI10ListSizingO10fillParentyA2CmF":{"name":"fillParent","abstract":"

    When using .fillParent, the full available space will be taken up, regardless","parent_name":"ListSizing"},"Enums/ListSizing.html#/s:10ListableUI10ListSizingO14measureContentyA2CmF":{"name":"measureContent","abstract":"

    When using .measureContent, the content will be measured within the provided fitting size","parent_name":"ListSizing"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO8verticalyA2CmF":{"name":"vertical","abstract":"

    A list layout which lays out top to bottom.

    ","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO10horizontalyA2CmF":{"name":"horizontal","abstract":"

    A list layout which lays out left to right (or leading to trailing, depending on implementation).

    ","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXE_xyXEtlF":{"name":"switch(vertical:horizontal:)","abstract":"

    When writing a layout, use this method to return differing values based on","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXK_xyXKtlF":{"name":"switch(vertical:horizontal:)","abstract":"

    When writing a layout, use this method to return differing values based on","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6height3for12CoreGraphics7CGFloatVSo6CGSizeV_tF":{"name":"height(for:)","abstract":"

    .vertical: Returns the height of the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO5width3for12CoreGraphics7CGFloatVSo6CGSizeV_tF":{"name":"width(for:)","abstract":"

    .vertical: Returns the width of the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO5point1x1ySo7CGPointV12CoreGraphics7CGFloatV_AKtF":{"name":"point(x:y:)","abstract":"

    .vertical: Returns a CGPoint made with (x, y).","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4size3forSo6CGSizeVAG_tF":{"name":"size(for:)","abstract":"

    .vertical: Returns the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4size5width6heightSo6CGSizeV12CoreGraphics7CGFloatV_AKtF":{"name":"size(width:height:)","abstract":"

    .vertical: Returns a CGSize made with (width, height).","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4maxY3for12CoreGraphics7CGFloatVSo6CGRectV_tF":{"name":"maxY(for:)","abstract":"

    .vertical: Returns the maxY of the frame.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4maxX3for12CoreGraphics7CGFloatVSo6CGRectV_tF":{"name":"maxX(for:)","abstract":"

    .vertical: Returns the maxX of the frame.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO1x3for12CoreGraphics7CGFloatVSo7CGPointV_tF":{"name":"x(for:)","abstract":"

    .vertical: Returns the x of the point.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO1y3for12CoreGraphics7CGFloatVSo7CGPointV_tF":{"name":"y(for:)","abstract":"

    .vertical: Returns the y of the point.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO3top4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF":{"name":"top(with:)","abstract":"

    .vertical: Returns the top of the insets.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6bottom4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF":{"name":"bottom(with:)","abstract":"

    .vertical: Returns the bottom of the insets.","parent_name":"LayoutDirection"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO13notSelectableyA2CmF":{"name":"notSelectable","abstract":"

    The item is not selectable at all.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO8tappableyA2CmF":{"name":"tappable","abstract":"

    The item is temporarily selectable. Once the user lifts their finger, the item is deselected.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO10selectableyACSb_tcACmF":{"name":"selectable(isSelected:)","abstract":"

    The item is persistently selectable. Once the user lifts their finger, the item is maintained.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO6singleyA2CmF":{"name":"single","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO5firstyA2CmF":{"name":"first","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO6middleyA2CmF":{"name":"middle","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO4lastyA2CmF":{"name":"last","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO6closedyA2CmF":{"name":"closed","abstract":"

    The actions are completely collapsed.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO4openyA2CmF":{"name":"open","abstract":"

    The actions are open to their natural size.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO7swipingyACSb_tcACmF":{"name":"swiping(willPerformAction:)","abstract":"

    The actions are being swiped and the size is affected by the gesture recognizer.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO016willPerformFirstD13AutomaticallyyA2CmF":{"name":"willPerformFirstActionAutomatically","abstract":"

    The actions have been swiped far enough to confirm the first action.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO13expandActionsyA2CmF":{"name":"expandActions","abstract":"

    The actions have been asked to completely expand (typically because the item is being deleted).

    ","parent_name":"SwipeActionState"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO03anyC0ShyACGvpZ":{"name":"anyContent","abstract":"

    If there is any content in the list at all, including headers and footers.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO12sectionsOnlyShyACGvpZ":{"name":"sectionsOnly","abstract":"

    Check if the content in the list is section-driven content, with the","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO10listHeaderyA2CmF":{"name":"listHeader","abstract":"

    If the list has a list-level header.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO10listFooteryA2CmF":{"name":"listFooter","abstract":"

    If the list has a list-level footer.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO16overscrollFooteryA2CmF":{"name":"overscrollFooter","abstract":"

    If the list has an overscroll footer.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO5itemsyA2CmF":{"name":"items","abstract":"

    If the sections in the list contain any items.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO14sectionHeadersyA2CmF":{"name":"sectionHeaders","abstract":"

    If any section in the list has a header.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO14sectionFootersyA2CmF":{"name":"sectionFooters","abstract":"

    If any section in the list has a footer.

    ","parent_name":"ContentFilters"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV11destinationAC0D11DestinationOvp":{"name":"destination","abstract":"

    The item in the list to scroll to when the insertedIdentifier is inserted.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV18insertedIdentifierAA03AnyJ0Cvp":{"name":"insertedIdentifier","abstract":"

    The identifier of the item for which the AutoScrollAction should be performed.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV8positionAA0D8PositionVvp":{"name":"position","abstract":"

    The desired scroll position,

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV9animationAA0D9AnimationOvp":{"name":"animation","abstract":"

    How to animate the change.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV13shouldPerformySbAA04ListD12PositionInfoVcvp":{"name":"shouldPerform","abstract":"

    An additional check you may provide to approve or reject the scroll action.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV10didPerformyyAA04ListD12PositionInfoVcvp":{"name":"didPerform","abstract":"

    Called when the list performs the insertion.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO9firstItemyA2EmF":{"name":"firstItem","abstract":"

    Scroll to the first item in the list.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO8lastItemyA2EmF":{"name":"lastItem","abstract":"

    Scroll to the last item in the list.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO4itemyAeA13AnyIdentifierCcAEmF":{"name":"item(_:)","abstract":"

    Scroll to the item with the specified identifier.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO4noneyA2CmF":{"name":"none","abstract":"

    The list never automatically scrolls.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO12scrollToItemyA2C010OnInsertedH0V_tcACmF":{"name":"scrollToItem(onInsertOf:)","abstract":"

    Scrolls to the specified item when the list is updated if the item was inserted in this update.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO8scrollTo_10onInsertOf8position9animation13shouldPerform03didN0A2C0D11DestinationOSg_AA13AnyIdentifierCAA0D8PositionVAA0D9AnimationOSbAA04ListdS4InfoVcyATctFZ":{"name":"scrollTo(_:onInsertOf:position:animation:shouldPerform:didPerform:)","abstract":"

    Scrolls to the specified item when the list is updated if the item was inserted in this update.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction/ScrollDestination.html":{"name":"ScrollDestination","abstract":"

    Where to scroll as a result of an AutoScrollAction.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction/OnInsertedItem.html":{"name":"OnInsertedItem","abstract":"

    Values used to configure the scrollToItem(onInsertOf:) action.

    ","parent_name":"AutoScrollAction"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO11willDisplayyA2CmF":{"name":"willDisplay","abstract":"

    The view is about to be displayed on screen. Update should be performed with no animation.

    ","parent_name":"ApplyReason"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO10wasUpdatedyA2CmF":{"name":"wasUpdated","abstract":"

    A view that is already visible is being updated.","parent_name":"ApplyReason"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO13shouldAnimateSbvp":{"name":"shouldAnimate","abstract":"

    If you should use animations while applying the update.","parent_name":"ApplyReason"},"Enums/ApplyReason.html":{"name":"ApplyReason","abstract":"

    Why the Item or HeaderFooter is being asked to apply an update to its presented views.

    "},"Enums/AutoScrollAction.html":{"name":"AutoScrollAction","abstract":"

    Options for auto-scrolling to items when the list is updated.

    "},"Enums/ContentFilters.html":{"name":"ContentFilters","abstract":"

    A filter enum which allows you to query the types of content contained in a Content or Section object.

    "},"Enums/SwipeActionState.html":{"name":"SwipeActionState","abstract":"

    These states dictate the layout of the swipe actions.

    "},"Enums/ItemPosition.html":{"name":"ItemPosition","abstract":"

    Undocumented

    "},"Enums/ItemSelectionStyle.html":{"name":"ItemSelectionStyle","abstract":"

    Controls the selection style and behavior of an item in a list.

    "},"Enums/LayoutDirection.html":{"name":"LayoutDirection","abstract":"

    Describes the given direction / axis that a layout uses when flowing its content.

    "},"Enums/ListSizing.html":{"name":"ListSizing","abstract":"

    Provides the possible options for how to size and measure a list when its measured size is queried"},"Enums/ScrollAnimation.html":{"name":"ScrollAnimation","abstract":"

    Specifies the kind of animation to use when scrolling a list view.

    "},"Enums/Sizing.html":{"name":"Sizing","abstract":"

    Controls how a header, footer, or item in a list view is sized.

    "},"Enums/WidthConstraint.html":{"name":"WidthConstraint","abstract":"

    Undocumented

    "},"Enums/CustomWidth.html":{"name":"CustomWidth","abstract":"

    Undocumented

    "},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC8isMovingSbvp":{"name":"isMoving","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC11beginMovingSbyF":{"name":"beginMoving()","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC5moved4withySo22UIPanGestureRecognizerC_tF":{"name":"moved(with:)","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC3endyyF":{"name":"end()","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)init":{"name":"init()","abstract":"

    Creates a preview for the given width.

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/s:10ListableUI15ItemPreviewViewC4with5state10appearance4itemAC12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptcfc":{"name":"init(with:state:appearance:item:)","abstract":"

    Creates a preview for the given item and parameters, and then lays out the preview view.

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF":{"name":"update(with:state:appearance:item:)","abstract":"

    Updates the item for the given parameters.","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/StaticSource/State.html#/s:10ListableUI12StaticSourceC5StateVAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"State"},"Classes/StaticSource/State.html":{"name":"State","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7contentAA7ContentVvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC4withAcA7ContentV_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC4withACyAA7ContentVzXE_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7content4withADyAA0D5StateCyAC0G0VG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7content4withAA7ContentVAA0D5StateCyAC0H0VG_tF":{"name":"content(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC7Buildera":{"name":"Builder","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC4withACyxGyAA0D5StateCyxG_AA7ContentVztc_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC7content4withADyAA0D5StateCyxG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC5valuexvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC3setyyyxzXEF":{"name":"set(_:)","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC7initial9didChangeACyxGx_yyctcfc":{"name":"init(initial:didChange:)","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC7discardyyF":{"name":"discard()","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/StateAccessor.html#/s:10ListableUI13StateAccessorC5valuexvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"StateAccessor"},"Classes/ListViewController.html#/s:10ListableUI18ListViewControllerC9configure4listyAA0C10PropertiesVz_tF":{"name":"configure(list:)","abstract":"

    Override this method to configure your list how you’d like to.","parent_name":"ListViewController"},"Classes/ListViewController.html#/s:10ListableUI18ListViewControllerC6reload8animatedySb_tF":{"name":"reload(animated:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)initWithNibName:bundle:":{"name":"init(nibName:bundle:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)loadView":{"name":"loadView()","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)viewWillAppear:":{"name":"viewWillAppear(_:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListView.html#/s:10ListableUI8ListViewC5frame10appearanceACSo6CGRectV_AA10AppearanceVtcfc":{"name":"init(frame:appearance:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC18scrollPositionInfoAA0c6ScrollfG0Vvp":{"name":"scrollPositionInfo","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC6layoutAA17LayoutDescriptionVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC3set6layout8animated10completionyAA17LayoutDescriptionV_SbyyctF":{"name":"set(layout:animated:completion:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC21scrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"scrollIndicatorInsets","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC13stateObserverAA0c5StateF0Vvp":{"name":"stateObserver","abstract":"

    A state observer allows you to receive callbacks when varying types","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC16ScrollCompletiona":{"name":"ScrollCompletion","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0M9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the provided item, with the provided positioning.","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0M9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the item with the provided identifier, with the provided positioning.","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToTop(animation:completion:)","abstract":"

    Scrolls to the very top of the list, which includes displaying the list header.

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToLastItem(animation:completion:)","abstract":"

    Scrolls to the last item in the list. If the list contains no items, no action is performed.

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11environmentAA0C11EnvironmentVvp":{"name":"environment","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC7contentAA7ContentVvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC10setContent8animated_ySb_AA0F0VtF":{"name":"setContent(animated:_:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC3set6source7initial8animatedAA13StateAccessorCy0I0QzGx_AKSbtAA0cD6SourceRzlF":{"name":"set(source:initial:animated:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC9configure4withyyAA0C10PropertiesVzXE_tF":{"name":"configure(with:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC9configure4withyAA0C10PropertiesV_tF":{"name":"configure(with:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)frame":{"name":"frame","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)bounds":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)backgroundColor":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)didMoveToWindow":{"name":"didMoveToWindow()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)didMoveToSuperview":{"name":"didMoveToSuperview()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_yAA0C10PropertiesVzXEtFZ":{"name":"contentSize(in:for:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_AA0C10PropertiesVtFZ":{"name":"contentSize(in:for:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC28testing_forceLayoutUpdateNowyyF":{"name":"testing_forceLayoutUpdateNow()","abstract":"

    Call this method to force an immediate, synchronous re-render of the list","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF":{"name":"clearSelectionDuringViewWillAppear(alongside:animated:)","abstract":"

    A method which provides Behavior.SelectionMode.single‘s clearsSelectionOnViewWillAppear behaviour.","parent_name":"ListView"},"Classes/ListActions/ViewControllerTransitioning.html#/s:10ListableUI11ListActionsC27ViewControllerTransitioningCAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ViewControllerTransitioning"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingCAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC16ScrollCompletiona":{"name":"ScrollCompletion","abstract":"

    Undocumented

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0N9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the provided item, with the provided positioning.","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0N9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the item with the provided identifier, with the provided positioning.","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToTop(animation:completion:)","abstract":"

    Scrolls to the very top of the list, which includes displaying the list header.

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToLastItem(animation:completion:)","abstract":"

    Scrolls to the last item in the list. If the list contains no items, no action is performed.

    ","parent_name":"Scrolling"},"Classes/ListActions.html#/s:10ListableUI11ListActionsC9scrollingAC9ScrollingCvp":{"name":"scrolling","abstract":"

    Actions which allow scrolling to individual items in a list.

    ","parent_name":"ListActions"},"Classes/ListActions.html#/s:10ListableUI11ListActionsC27viewControllerTransitioningAC04ViewfG0Cvp":{"name":"viewControllerTransitioning","abstract":"

    Actions which allow hooking up your list to the view controller transitioning APIs.

    ","parent_name":"ListActions"},"Classes/ListActions.html#/s:10ListableUI11ListActionsCACycfc":{"name":"init()","abstract":"

    Creates and returns an actions object which can be registered with a list view.

    ","parent_name":"ListActions"},"Classes/ListActions/Scrolling.html":{"name":"Scrolling","abstract":"

    Provides access to scrolling actions within a list view.

    ","parent_name":"ListActions"},"Classes/ListActions/ViewControllerTransitioning.html":{"name":"ViewControllerTransitioning","abstract":"

    Provides access to view controller transitioning options in a list.

    ","parent_name":"ListActions"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC11SectionInfoC":{"name":"SectionInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC":{"name":"SupplementaryItemInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC8ItemInfoC":{"name":"ItemInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp":{"name":"actions","parent_name":"DefaultItemContentCoordinator"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp":{"name":"info","parent_name":"DefaultItemContentCoordinator"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp":{"name":"view","parent_name":"DefaultItemContentCoordinator"},"Classes/ItemContentCoordinatorInfo.html#/s:10ListableUI26ItemContentCoordinatorInfoC8originalAA0C0VyxGvp":{"name":"original","abstract":"

    The original state of the item, as passed to the list.","parent_name":"ItemContentCoordinatorInfo"},"Classes/ItemContentCoordinatorInfo.html#/s:10ListableUI26ItemContentCoordinatorInfoC7currentAA0C0VyxGvp":{"name":"current","abstract":"

    The current value of the item, including changes made","parent_name":"ItemContentCoordinatorInfo"},"Classes/ItemContentCoordinatorActions.html#/s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_AA0C0VyxGtF":{"name":"update(animated:_:)","abstract":"

    Updates the item to the provided item.

    ","parent_name":"ItemContentCoordinatorActions"},"Classes/ItemContentCoordinatorActions.html#/s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_yAA0C0VyxGzXEtF":{"name":"update(animated:_:)","abstract":"

    Allows you to update the item passed into the update closure.

    ","parent_name":"ItemContentCoordinatorActions"},"Classes/__LST_KeyboardObserver_ObjCAccess.html#/c:@M@ListableUI@objc(cs)__LST_KeyboardObserver_ObjCAccess(cm)__setupSharedInstance":{"name":"__setupSharedInstance()","abstract":"

    Undocumented

    ","parent_name":"__LST_KeyboardObserver_ObjCAccess"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC05swipeE5Width12CoreGraphics7CGFloatVvp":{"name":"swipeActionsWidth","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC16didPerformActionACySbc_tcfc":{"name":"init(didPerformAction:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/c:@M@ListableUI@objc(cs)DefaultSwipeActionsView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC5apply7actionsyAA0dE13ConfigurationV_tF":{"name":"apply(actions:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC5apply5stateyAA0D11ActionStateO_tF":{"name":"apply(state:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/AnyIdentifier.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"AnyIdentifier"},"Classes/AnyIdentifier.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"AnyIdentifier"},"Classes/AnyIdentifier.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"AnyIdentifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierCACyxGycfc":{"name":"init()","abstract":"

    Identifier which identifies by the type of Represented only.","parent_name":"Identifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierCyACyxGqd__cSHRd__lufc":{"name":"init(_:)","abstract":"

    Creates an identifier which identifies by both Represented, and the value passed to init.

    ","parent_name":"Identifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierC16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    Undocumented

    ","parent_name":"Identifier"},"Classes/Identifier.html":{"name":"Identifier","abstract":"

    An Identifier is used to unique items in Listable lists. Sections,"},"Classes/AnyIdentifier.html":{"name":"AnyIdentifier","abstract":"

    A type-erased Identifier used to identify content in a listable list.

    "},"Classes/DefaultSwipeActionsView.html":{"name":"DefaultSwipeActionsView","abstract":"

    Undocumented

    "},"Classes/__LST_KeyboardObserver_ObjCAccess.html":{"name":"__LST_KeyboardObserver_ObjCAccess","abstract":"

    An Objective-C accessible class that lets us set up the shared"},"Classes/ItemContentCoordinatorActions.html":{"name":"ItemContentCoordinatorActions","abstract":"

    The available actions you can perform as a coordinator, which are reported back to the list to manage the item.

    "},"Classes/ItemContentCoordinatorInfo.html":{"name":"ItemContentCoordinatorInfo","abstract":"

    Information about the current and original state of the item.

    "},"Classes/DefaultItemContentCoordinator.html":{"name":"DefaultItemContentCoordinator","abstract":"

    The default ItemContentCoordinator, which performs no actions.

    "},"Classes/ListLayoutContent.html":{"name":"ListLayoutContent","abstract":"

    Undocumented

    "},"Classes/ListActions.html":{"name":"ListActions","abstract":"

    ListActions is an type that you can use to gain access to actions to perform on a List"},"Classes/ListView.html":{"name":"ListView","abstract":"

    Undocumented

    "},"Classes.html#/s:10ListableUI15UpdateCallbacksC":{"name":"UpdateCallbacks","abstract":"

    Undocumented

    "},"Classes/ListViewController.html":{"name":"ListViewController","abstract":"

    A class which provides an easy way to set up and display a ListView,"},"Classes/StateAccessor.html":{"name":"StateAccessor","abstract":"

    Undocumented

    "},"Classes/SourceState.html":{"name":"SourceState","abstract":"

    Undocumented

    "},"Classes/DynamicSource.html":{"name":"DynamicSource","abstract":"

    Undocumented

    "},"Classes/StaticSource.html":{"name":"StaticSource","abstract":"

    Undocumented

    "},"Classes/ItemPreviewView.html":{"name":"ItemPreviewView","abstract":"

    A view you can use to test the various possible states that your ItemContent can be in.

    "},"Classes/ReorderingActions.html":{"name":"ReorderingActions","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Functions.html":{"name":"Functions","abstract":"

    The following functions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/s:10ListableUI6Headera":{"name":"Header","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI6Footera":{"name":"Footer","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI13HeaderContenta":{"name":"HeaderContent","abstract":"

    Undocumented

    "},"Typealiases.html#/s:10ListableUI13FooterContenta":{"name":"FooterContent","abstract":"

    Undocumented

    "},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV17CompletionHandlera":{"name":"CompletionHandler","abstract":"

    The completion handler to call after performing the swipe action.

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV7Handlera":{"name":"Handler","abstract":"

    The completion handler called when the action is tapped.

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5titleSSSgvp":{"name":"title","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV15backgroundColorSo7UIColorCSgvp":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5imageSo7UIImageCSgvp":{"name":"image","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV7handleryyySbccvp":{"name":"handler","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeAction.html#/s:10ListableUI11SwipeActionV5title15backgroundColor5image7handlerACSS_So7UIColorCSo7UIImageCSgyySbcctcfc":{"name":"init(title:backgroundColor:image:handler:)","abstract":"

    Undocumented

    ","parent_name":"SwipeAction"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV7actionsSayAA0C6ActionVGvp":{"name":"actions","abstract":"

    The actions to display when the cell is swiped.

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV027performsFirstActionWithFullC0Sbvp":{"name":"performsFirstActionWithFullSwipe","abstract":"

    Whether the first action is performed automatically with a full swipe.

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV6action027performsFirstActionWithFullC0AcA0cI0V_Sbtcfc":{"name":"init(action:performsFirstActionWithFullSwipe:)","abstract":"

    Undocumented

    ","parent_name":"SwipeActionsConfiguration"},"Structs/SwipeActionsConfiguration.html#/s:10ListableUI25SwipeActionsConfigurationV7actions027performsFirstActionWithFullC0ACSayAA0cI0VG_Sbtcfc":{"name":"init(actions:performsFirstActionWithFullSwipe:)","abstract":"

    Undocumented

    ","parent_name":"SwipeActionsConfiguration"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4left12CoreGraphics7CGFloatVvp":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV5right12CoreGraphics7CGFloatVvp":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4zeroACvpZ":{"name":"zero","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV4left5rightAC12CoreGraphics7CGFloatV_AHtcfc":{"name":"init(left:right:)","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/HorizontalPadding.html#/s:10ListableUI17HorizontalPaddingV7uniformAC12CoreGraphics7CGFloatV_tcfc":{"name":"init(uniform:)","abstract":"

    Undocumented

    ","parent_name":"HorizontalPadding"},"Structs/Section.html#/s:10ListableUI7SectionV4infoAA03AnyC4Info_pvp":{"name":"info","abstract":"

    Data backing the identity and updates to the section – for example","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6headerAA15AnyHeaderFooter_pSgvp":{"name":"header","abstract":"

    The header, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV6footerAA15AnyHeaderFooter_pSgvp":{"name":"footer","abstract":"

    The footer, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV5itemsSayAA7AnyItem_pGvp":{"name":"items","abstract":"

    The items, if any, associated with the section.

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV8contains3anySbShyAA14ContentFiltersOG_tF":{"name":"contains(any:)","abstract":"

    Check if the section contains any of the given types, which you specify via the filters","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV7layoutsAA0C7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV9Configurea":{"name":"Configure","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_9configureACx_yACzXEtcAA0C4InfoRzlufc":{"name":"init(_:configure:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_7layouts6header6footer5items9configureACx_AA0C7LayoutsVAA15AnyHeaderFooter_pSgALSayAA0J4Item_pGyACzXEtcSHRzlufc":{"name":"init(_:layouts:header:footer:items:configure:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV_7layouts6header6footer5items9configureACx_AA0C7LayoutsVAA15AnyHeaderFooter_pSgALSayAA0J4Item_pGyACzXEtcAA0C4InfoRzlufc":{"name":"init(_:layouts:header:footer:items:configure:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV3addyyAA7AnyItem_pF":{"name":"add(_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_AA7AnyItem_ptFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_AA4ItemVyxGtAA0E7ContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_xtAA11ItemContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayAA7AnyItem_pGtFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayAA4ItemVyxGGtAA0E7ContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/Section.html#/s:10ListableUI7SectionV2peoiyyACz_SayxGtAA11ItemContentRzlFZ":{"name":"+=(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Section"},"Structs/ScrollPosition/IfAlreadyVisible.html#/s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO9doNothingyA2EmF":{"name":"doNothing","abstract":"

    Do not perform any action if the item is already partially visible.

    ","parent_name":"IfAlreadyVisible"},"Structs/ScrollPosition/IfAlreadyVisible.html#/s:10ListableUI14ScrollPositionV16IfAlreadyVisibleO08scrollToD0yA2EmF":{"name":"scrollToPosition","abstract":"

    Scroll the item to the desired Position, even if it is already partially visible.

    ","parent_name":"IfAlreadyVisible"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O3topyA2EmF":{"name":"top","abstract":"

    Scroll the item to the top of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O8centeredyA2EmF":{"name":"centered","abstract":"

    Scroll the item to the middle of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition/Position.html#/s:10ListableUI14ScrollPositionV0D0O6bottomyA2EmF":{"name":"bottom","abstract":"

    Scroll the item to the bottom of the list.

    ","parent_name":"Position"},"Structs/ScrollPosition.html#/s:10ListableUI14ScrollPositionV8position16ifAlreadyVisible6offsetA2C0D0O_AC02IfgH0O12CoreGraphics7CGFloatVtcfc":{"name":"init(position:ifAlreadyVisible:offset:)","abstract":"

    Creates a new scroll position with the provided values.

    ","parent_name":"ScrollPosition"},"Structs/ScrollPosition/Position.html":{"name":"Position","abstract":"

    How the item should be positioned within the list.

    ","parent_name":"ScrollPosition"},"Structs/ScrollPosition/IfAlreadyVisible.html":{"name":"IfAlreadyVisible","abstract":"

    What action should be taken if an item is already partially visible within a list.

    ","parent_name":"ScrollPosition"},"Structs/RefreshControl/Title.html#/s:10ListableUI14RefreshControlV5TitleO6stringyAESScAEmF":{"name":"string(_:)","abstract":"

    Undocumented

    ","parent_name":"Title"},"Structs/RefreshControl/Title.html#/s:10ListableUI14RefreshControlV5TitleO10attributedyAESo18NSAttributedStringCcAEmF":{"name":"attributed(_:)","abstract":"

    Undocumented

    ","parent_name":"Title"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV12isRefreshingSbvp":{"name":"isRefreshing","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV5titleAC5TitleOSgvp":{"name":"title","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV9tintColorSo7UIColorCSgvp":{"name":"tintColor","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV02OnC0a":{"name":"OnRefresh","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV02onC0yycvp":{"name":"onRefresh","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl.html#/s:10ListableUI14RefreshControlV12isRefreshing5title9tintColor02onC0ACSb_AC5TitleOSgSo7UIColorCSgyyctcfc":{"name":"init(isRefreshing:title:tintColor:onRefresh:)","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/RefreshControl/Title.html":{"name":"Title","abstract":"

    Undocumented

    ","parent_name":"RefreshControl"},"Structs/ItemPreviewAppearance.html#/s:10ListableUI21ItemPreviewAppearanceV7padding15backgroundColorAC12CoreGraphics7CGFloatV_So7UIColorCtcfc":{"name":"init(padding:backgroundColor:)","abstract":"

    Creates a new preview appearance.

    ","parent_name":"ItemPreviewAppearance"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV5width12CoreGraphics7CGFloatVvp":{"name":"width","abstract":"

    The width of the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV5stateAA0C5StateVvp":{"name":"state","abstract":"

    The ItemState to use in the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV10appearanceAA0cD10AppearanceVvp":{"name":"appearance","abstract":"

    The desired appearance of the preview.

    ","parent_name":"Properties"},"Structs/ItemPreview/Properties.html#/s:10ListableUI11ItemPreviewV10PropertiesV4with5state10appearanceAE12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVtcfc":{"name":"init(with:state:appearance:)","abstract":"

    Creates a new preview with the desired options.

    ","parent_name":"Properties"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV4itemAA03AnyC0_pvp":{"name":"item","abstract":"

    The item being previewed by the preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV10propertiesAC10PropertiesVvp":{"name":"properties","abstract":"

    The properties of the current preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview/Properties.html":{"name":"Properties","abstract":"

    The properties of a preview.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV8previews3for4withQrAA03AnyC0_p_SayAC10PropertiesVGtFZ":{"name":"previews(for:with:)","abstract":"

    Creates and returns a SwiftUI view that contains individual previews for each of the provided","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV07withAllC6States3for5width10appearanceQrAA03AnyC0_p_12CoreGraphics7CGFloatVAA0cD10AppearanceVtFZ":{"name":"withAllItemStates(for:width:appearance:)","abstract":"

    Creates and returns a SwiftUI view that contains individual previews for all the possible","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV_5width5state10appearanceAcA03AnyC0_p_12CoreGraphics7CGFloatVAA0C5StateVAA0cD10AppearanceVtcfc":{"name":"init(_:width:state:appearance:)","abstract":"

    Creates a new preview with the provided properties.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:10ListableUI11ItemPreviewV_10propertiesAcA03AnyC0_p_AC10PropertiesVtcfc":{"name":"init(_:properties:)","abstract":"

    Creates a new preview with the provided properties.

    ","parent_name":"ItemPreview"},"Structs/ItemPreview.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"ItemPreview"},"Structs/LocalizedItemCollator/CollatedSection.html#/s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5titleSSvp":{"name":"title","abstract":"

    The title of section – a single letter like A, B, C, D, E, etc.","parent_name":"CollatedSection"},"Structs/LocalizedItemCollator/CollatedSection.html#/s:10ListableUI21LocalizedItemCollatorV15CollatedSectionV5itemsSayAA03AnyD0_pGvp":{"name":"items","abstract":"

    The sorted items in the collated sections.

    ","parent_name":"CollatedSection"},"Structs/LocalizedItemCollator.html#/s:10ListableUI21LocalizedItemCollatorV7collate9collation5itemsSayAC15CollatedSectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGtFZ":{"name":"collate(collation:items:)","abstract":"

    Collates and returns the set of items into CollatedSections.","parent_name":"LocalizedItemCollator"},"Structs/LocalizedItemCollator.html#/s:10ListableUI21LocalizedItemCollatorV8sections9collation4with_SayAA7SectionVGSo27UILocalizedIndexedCollationC_SayAA03Anyc10CollatableD0_pGyAC08CollatedI0V_AHztXEtFZ":{"name":"sections(collation:with:_:)","abstract":"

    Collates and returns the set of items into list Sections,","parent_name":"LocalizedItemCollator"},"Structs/LocalizedItemCollator/CollatedSection.html":{"name":"CollatedSection","abstract":"

    The output of the collator, with the collated title and items","parent_name":"LocalizedItemCollator"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV3oldShyAA13AnyIdentifierCGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/SelectionChanged.html#/s:10ListableUI17ListStateObserverV16SelectionChangedV3newShyAA13AnyIdentifierCGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"SelectionChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV3oldSo6CGRectVvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/FrameChanged.html#/s:10ListableUI17ListStateObserverV12FrameChangedV3newSo6CGRectVvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"FrameChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV9displayedSayAA7AnyItem_pGvp":{"name":"displayed","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/VisibilityChanged.html#/s:10ListableUI17ListStateObserverV17VisibilityChangedV12endedDisplaySayAA7AnyItem_pGvp":{"name":"endedDisplay","abstract":"

    Undocumented

    ","parent_name":"VisibilityChanged"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV8insertedShyAA13AnyIdentifierCGvp":{"name":"inserted","abstract":"

    Undocumented

    ","parent_name":"ChangedIDs"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV10ChangedIDsV7removedShyAA13AnyIdentifierCGvp":{"name":"removed","abstract":"

    Undocumented

    ","parent_name":"ChangedIDs"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV8sectionsAG10ChangedIDsVvp":{"name":"sections","abstract":"

    Undocumented

    ","parent_name":"InsertionsAndRemovals"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21InsertionsAndRemovalsV5itemsAG10ChangedIDsVvp":{"name":"items","abstract":"

    Undocumented

    ","parent_name":"InsertionsAndRemovals"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals/ChangedIDs.html":{"name":"ChangedIDs","abstract":"

    Undocumented

    ","parent_name":"InsertionsAndRemovals"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV10hadChangesSbvp":{"name":"hadChanges","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV21insertionsAndRemovalsAE010InsertionsiJ0Vvp":{"name":"insertionsAndRemovals","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated.html#/s:10ListableUI17ListStateObserverV14ContentUpdatedV12positionInfoAA0c14ScrollPositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/ContentUpdated/InsertionsAndRemovals.html":{"name":"InsertionsAndRemovals","abstract":"

    Undocumented

    ","parent_name":"ContentUpdated"},"Structs/ListStateObserver/DidScroll.html#/s:10ListableUI17ListStateObserverV9DidScrollV7actionsAA0C7ActionsCvp":{"name":"actions","abstract":"

    Undocumented

    ","parent_name":"DidScroll"},"Structs/ListStateObserver/DidScroll.html#/s:10ListableUI17ListStateObserverV9DidScrollV12positionInfoAA0cg8PositionI0Vvp":{"name":"positionInfo","abstract":"

    Undocumented

    ","parent_name":"DidScroll"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates and optionally allows you to configure an observer.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV11OnDidScrolla":{"name":"OnDidScroll","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV11onDidScrollyyyAC0gH0VcF":{"name":"onDidScroll(_:)","abstract":"

    Registers a callback which will be called when the list view is scrolled, or is","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV16OnContentUpdateda":{"name":"OnContentUpdated","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV16onContentUpdatedyyyAC0gH0VcF":{"name":"onContentUpdated(_:)","abstract":"

    Registers a callback which will be called when the list view’s content is updated","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV19OnVisibilityChangeda":{"name":"OnVisibilityChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV19onVisibilityChangedyyyAC0gH0VcF":{"name":"onVisibilityChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s content is changed – eg through","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV14OnFrameChangeda":{"name":"OnFrameChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV14onFrameChangedyyyAC0gH0VcF":{"name":"onFrameChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s frame is changed.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV18OnSelectionChangeda":{"name":"OnSelectionChanged","abstract":"

    Undocumented

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver.html#/s:10ListableUI17ListStateObserverV18onSelectionChangedyyyAC0gH0VcF":{"name":"onSelectionChanged(_:)","abstract":"

    Registers a callback which will be called when the list view’s selected items are changed by the user.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/DidScroll.html":{"name":"DidScroll","abstract":"

    Parameters available for OnDidScroll callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/ContentUpdated.html":{"name":"ContentUpdated","abstract":"

    Parameters available for OnContentUpdated callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/VisibilityChanged.html":{"name":"VisibilityChanged","abstract":"

    Parameters available for OnVisibilityChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/FrameChanged.html":{"name":"FrameChanged","abstract":"

    Parameters available for OnFrameChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListStateObserver/SelectionChanged.html":{"name":"SelectionChanged","abstract":"

    Parameters available for OnSelectionChanged callbacks.

    ","parent_name":"ListStateObserver"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV12visibleItemsShyAA13AnyIdentifierCGvp":{"name":"visibleItems","abstract":"

    Which items within the list are currently visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV18isFirstItemVisibleSbvp":{"name":"isFirstItemVisible","abstract":"

    If the first item list is partially visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV17isLastItemVisibleSbvp":{"name":"isLastItemVisible","abstract":"

    If the last item list is partially visible.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV19visibleContentEdges017includingSafeAreaI0So10UIRectEdgeVAG_tF":{"name":"visibleContentEdges(includingSafeAreaEdges:)","abstract":"

    Used to retrieve the visible content edges for the list’s content.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListScrollPositionInfo.html#/s:10ListableUI22ListScrollPositionInfoV10scrollView12visibleItems18isFirstItemVisible0k4LastmN0ACSo08UIScrollH0C_ShyAA13AnyIdentifierCGS2btcfc":{"name":"init(scrollView:visibleItems:isFirstItemVisible:isLastItemVisible:)","abstract":"

    Creates a ListScrollPositionInfo for the provided scroll view.

    ","parent_name":"ListScrollPositionInfo"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV15animatesChangesSbvp":{"name":"animatesChanges","abstract":"

    If the changes applied should be animated or not.","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7contentAA7ContentVvp":{"name":"content","abstract":"

    The content displayed by the list.","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV11environmentAA0C11EnvironmentVvp":{"name":"environment","abstract":"

    The environment associated with the List.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV6layoutAA17LayoutDescriptionVvp":{"name":"layout","abstract":"

    The layout type to use with the list. Defaults to .table(), aka a table","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    The appearance to use with the list.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV21scrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"scrollIndicatorInsets","abstract":"

    The scroll insets to apply to the list view.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    The various behavior options to apply to the list, which affect how the user","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV13stateObserverAA0c5StateF0Vvp":{"name":"stateObserver","abstract":"

    The state reader to use with your list. A ListStateObserver","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7actionsAA0C7ActionsCSgvp":{"name":"actions","abstract":"

    The actions instance to use to control the list, eg to scroll to a given","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV16autoScrollActionAA04AutofG0Ovp":{"name":"autoScrollAction","abstract":"

    The auto scroll action to apply to the list. This allows you to","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV23accessibilityIdentifierSSSgvp":{"name":"accessibilityIdentifier","abstract":"

    The accessibility identifier assigned to the inner UICollectionView.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    The debugging identifier assigned to the list. Used for os_signpost integration","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV7default4withACyACzXE_tFZ":{"name":"default(with:)","abstract":"

    An instance of ListProperties with sensible default values.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV15animatesChanges6layout10appearance21scrollIndicatorInsets8behavior16autoScrollAction23accessibilityIdentifier09debuggingQ05buildACSb_AA17LayoutDescriptionVAA10AppearanceVSo06UIEdgeK0VAA8BehaviorVAA04AutonO0OSSSgAWyACzXEtcfc":{"name":"init(animatesChanges:layout:appearance:scrollIndicatorInsets:behavior:autoScrollAction:accessibilityIdentifier:debuggingIdentifier:build:)","abstract":"

    Create a new instance of ListProperties with the provided values.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV6modify5usingyyACzXE_tF":{"name":"modify(using:)","abstract":"

    Updates the ListProperties object with the changes in the provided builder.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV8modified5usingACyACzXE_tF":{"name":"modified(using:)","abstract":"

    Creates a new ListProperties object modified by the changes in the provided builder.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV3addyyAA7SectionVF":{"name":"add(_:)","abstract":"

    Adds a new section to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV2peoiyyACz_AA7SectionVtFZ":{"name":"+=(_:_:)","abstract":"

    Adds a new section to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV2peoiyyACz_SayAA7SectionVGtFZ":{"name":"+=(_:_:)","abstract":"

    Adds a list of new sections to the content.

    ","parent_name":"ListProperties"},"Structs/ListProperties.html#/s:10ListableUI14ListPropertiesV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF":{"name":"callAsFunction(_:configure:)","abstract":"

    Allows streamlined creation of sections when building a list.

    ","parent_name":"ListProperties"},"Structs/ListEnvironment.html#/s:10ListableUI15ListEnvironmentV5emptyACvpZ":{"name":"empty","abstract":"

    A default “empty” environment, with no values overridden.","parent_name":"ListEnvironment"},"Structs/ListEnvironment.html#/s:10ListableUI15ListEnvironmentVy5ValueQzxmcAA0cD3KeyRzluip":{"name":"subscript(_:)","abstract":"

    Gets or sets an environment value by its key.

    ","parent_name":"ListEnvironment"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp":{"name":"padding","abstract":"

    The padding to place around the outside of the content of the list.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV5widthAA15WidthConstraintOvp":{"name":"width","abstract":"

    The width of the content of the list, which can be optionally constrained.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV27headerToFirstSectionSpacing12CoreGraphics7CGFloatVvp":{"name":"headerToFirstSectionSpacing","abstract":"

    The spacing between the list header and the first section.","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithNoFooter","abstract":"

    The spacing to apply between sections, if the previous section has no footer.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithFooter","abstract":"

    The spacing to apply between sections, if the previous section has a footer.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderBottomSpacing","abstract":"

    The spacing to apply below a section header, before its items.","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV11itemSpacing12CoreGraphics7CGFloatVvp":{"name":"itemSpacing","abstract":"

    The spacing between individual items within a section in a list.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"itemToSectionFooterSpacing","abstract":"

    The spacing between the last item in the section and the footer.","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV26lastSectionToFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"lastSectionToFooterSpacing","abstract":"

    The spacing between the last section and the footer of the list.","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV7padding5width27headerToFirstSectionSpacing05interkL12WithNoFooter0mklnP0019sectionHeaderBottomL004itemL00tikpL004lastkipL0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA6Utcfc":{"name":"init(padding:width:headerToFirstSectionSpacing:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemSpacing:itemToSectionFooterSpacing:lastSectionToFooterSpacing:)","abstract":"

    Creates a new Layout with the provided options.

    ","parent_name":"Layout"},"Structs/TableAppearance/Layout.html#/s:10ListableUI15TableAppearanceV6LayoutV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Easily mutate the Layout in place.

    ","parent_name":"Layout"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV10itemHeight12CoreGraphics7CGFloatVvp":{"name":"itemHeight","abstract":"

    The default height for items in a list.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderHeight","abstract":"

    The default height for section headers in a list.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp":{"name":"sectionFooterHeight","abstract":"

    The default height for section footer in a list.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"listHeaderHeight","abstract":"

    The default height for the list’s header.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp":{"name":"listFooterHeight","abstract":"

    The default height for the list’s footer.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp":{"name":"overscrollFooterHeight","abstract":"

    The default height for the list’s overscroll footer.

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV26itemPositionGroupingHeight12CoreGraphics7CGFloatVvp":{"name":"itemPositionGroupingHeight","abstract":"

    When providing the ItemPosition for items in a list, specifies the max spacing","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV10itemHeight013sectionHeaderG00h6FooterG004listiG00kjG0010overscrolljG00f16PositionGroupingG0AE12CoreGraphics7CGFloatV_A6Otcfc":{"name":"init(itemHeight:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:itemPositionGroupingHeight:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/TableAppearance/Sizing.html#/s:10ListableUI15TableAppearanceV6SizingV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/TableAppearance/SectionLayout/Columns.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5countSivp":{"name":"count","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/TableAppearance/SectionLayout/Columns.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV7spacing12CoreGraphics7CGFloatVvp":{"name":"spacing","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/TableAppearance/SectionLayout/Columns.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV3oneAGvpZ":{"name":"one","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/TableAppearance/SectionLayout/Columns.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7ColumnsV5count7spacingAGSi_12CoreGraphics7CGFloatVtcfc":{"name":"init(count:spacing:)","abstract":"

    Undocumented

    ","parent_name":"Columns"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV011customInterE7Spacing12CoreGraphics7CGFloatVSgvp":{"name":"customInterSectionSpacing","abstract":"

    Overrides the calculated spacing after this section

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV7columnsAE7ColumnsVvp":{"name":"columns","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI15TableAppearanceV13SectionLayoutV5width011customInterE7Spacing7columnsAeA11CustomWidthO_12CoreGraphics7CGFloatVSgAE7ColumnsVtcfc":{"name":"init(width:customInterSectionSpacing:columns:)","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout.html#/s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","parent_name":"SectionLayout"},"Structs/TableAppearance/SectionLayout/Columns.html":{"name":"Columns","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/TableAppearance/HeaderFooterLayout.html#/s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/TableAppearance/HeaderFooterLayout.html#/s:10ListableUI15TableAppearanceV18HeaderFooterLayoutV5widthAeA11CustomWidthO_tcfc":{"name":"init(width:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/TableAppearance/HeaderFooterLayout.html#/s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ":{"name":"defaultValue","parent_name":"HeaderFooterLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI15TableAppearanceV10ItemLayoutV11itemSpacing12CoreGraphics7CGFloatVSgvp":{"name":"itemSpacing","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI15TableAppearanceV10ItemLayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVSgvp":{"name":"itemToSectionFooterSpacing","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI15TableAppearanceV10ItemLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI15TableAppearanceV10ItemLayoutV11itemSpacing0g15ToSectionFooterH05widthAE12CoreGraphics7CGFloatVSg_AlA11CustomWidthOtcfc":{"name":"init(itemSpacing:itemToSectionFooterSpacing:width:)","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/TableAppearance/ItemLayout.html#/s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","parent_name":"ItemLayout"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV6sizingAC6SizingVvp":{"name":"sizing","abstract":"

    Default sizing attributes for content in the list.

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    Layout attributes for content in the list.

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance.html#/s:10ListableUI15TableAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc":{"name":"init(stickySectionHeaders:sizing:layout:)","abstract":"

    Creates a new TableAppearance object.

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/ItemLayout.html":{"name":"ItemLayout","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/HeaderFooterLayout.html":{"name":"HeaderFooterLayout","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/SectionLayout.html":{"name":"SectionLayout","abstract":"

    Undocumented

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/Sizing.html":{"name":"Sizing","abstract":"

    Sizing options for the list.

    ","parent_name":"TableAppearance"},"Structs/TableAppearance/Layout.html":{"name":"Layout","abstract":"

    Layout options for the list.

    ","parent_name":"TableAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    The direction the paging layout should occur in. Defaults to vertical.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV21showsScrollIndicatorsSbvp":{"name":"showsScrollIndicators","abstract":"

    If scroll indicators should be visible along the scrollable axis.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV10itemInsetsSo06UIEdgeF0Vvp":{"name":"itemInsets","abstract":"

    How far each item in the list should be inset from the edges of the view.

    ","parent_name":"PagedAppearance"},"Structs/PagedAppearance.html#/s:10ListableUI15PagedAppearanceV9direction21showsScrollIndicators10itemInsetsAcA15LayoutDirectionO_SbSo06UIEdgeJ0Vtcfc":{"name":"init(direction:showsScrollIndicators:itemInsets:)","abstract":"

    Undocumented

    ","parent_name":"PagedAppearance"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV5width12CoreGraphics7CGFloatVvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV6height12CoreGraphics7CGFloatVvp":{"name":"height","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV7rotatesSbvp":{"name":"rotates","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV5width6height7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc":{"name":"init(width:height:rotates:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutSize.html#/s:10ListableUI14ListLayoutSizeV12CGPointValue3forSo6CGSizeVAA0D9DirectionO_tF":{"name":"CGPointValue(for:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutSize"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1x12CoreGraphics7CGFloatVvp":{"name":"x","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1y12CoreGraphics7CGFloatVvp":{"name":"y","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV7rotatesSbvp":{"name":"rotates","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV1x1y7rotatesAC12CoreGraphics7CGFloatV_AISbtcfc":{"name":"init(x:y:rotates:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutPoint.html#/s:10ListableUI15ListLayoutPointV12CGPointValue3forSo0F0VAA0D9DirectionO_tF":{"name":"CGPointValue(for:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutPoint"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO9automaticyA2EmF":{"name":"automatic","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO14scrollableAxesyA2EmF":{"name":"scrollableAxes","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO5neveryA2EmF":{"name":"never","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30ContentInsetAdjustmentBehaviorO6alwaysyA2EmF":{"name":"always","abstract":"

    Undocumented

    ","parent_name":"ContentInsetAdjustmentBehavior"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabledSbvp":{"name":"isPagingEnabled","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV30contentInsetAdjustmentBehaviorAC07ContentijK0Ovp":{"name":"contentInsetAdjustmentBehavior","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV20allowsBounceVerticalSbvp":{"name":"allowsBounceVertical","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV22allowsBounceHorizontalSbvp":{"name":"allowsBounceHorizontal","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV016allowsHorizontalE9IndicatorSbvp":{"name":"allowsHorizontalScrollIndicator","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV014allowsVerticalE9IndicatorSbvp":{"name":"allowsVerticalScrollIndicator","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties.html#/s:10ListableUI30ListLayoutScrollViewPropertiesV15isPagingEnabled30contentInsetAdjustmentBehavior20allowsBounceVertical0oP10Horizontal0oqE9Indicator0oreS0ACSb_AC07ContentlmN0OS4btcfc":{"name":"init(isPagingEnabled:contentInsetAdjustmentBehavior:allowsBounceVertical:allowsBounceHorizontal:allowsVerticalScrollIndicator:allowsHorizontalScrollIndicator:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutScrollViewProperties/ContentInsetAdjustmentBehavior.html":{"name":"ContentInsetAdjustmentBehavior","abstract":"

    Undocumented

    ","parent_name":"ListLayoutScrollViewProperties"},"Structs/ListLayoutDefaults.html#/s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAA04ItemghiJ0Vvp":{"name":"itemInsertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"ListLayoutDefaults"},"Structs/ListLayoutDefaults.html#/s:10ListableUI18ListLayoutDefaultsV29itemInsertAndRemoveAnimationsAcA04ItemghiJ0V_tcfc":{"name":"init(itemInsertAndRemoveAnimations:)","abstract":"

    Undocumented

    ","parent_name":"ListLayoutDefaults"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV7SectionV":{"name":"Section","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV13SupplementaryV":{"name":"Supplementary","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/ListLayoutAttributes.html#/s:10ListableUI20ListLayoutAttributesV4ItemV":{"name":"Item","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAttributes"},"Structs/SectionLayouts.html#/s:10ListableUI14SectionLayoutsVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates a new instance of the layouts, with an optional configure","parent_name":"SectionLayouts"},"Structs/SectionLayouts.html#/s:10ListableUI14SectionLayoutsVyxxmcAA0cD5ValueRzluip":{"name":"subscript(_:)","abstract":"

    Allows accessing the various SectionLayoutsValues stored within the object.","parent_name":"SectionLayouts"},"Structs/SectionLayouts.html#/s:10ListableUI14SectionLayoutsV4gridAA14GridAppearanceV0C6LayoutVvp":{"name":"grid","abstract":"

    Undocumented

    ","parent_name":"SectionLayouts"},"Structs/SectionLayouts.html#/s:10ListableUI14SectionLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp":{"name":"table","abstract":"

    Allows customization of a Section‘s layout when it is presented within a .table style layout.

    ","parent_name":"SectionLayouts"},"Structs/GridAppearance/SectionLayout.html#/s:10ListableUI14GridAppearanceV13SectionLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/GridAppearance/SectionLayout.html#/s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","parent_name":"SectionLayout"},"Structs/GridAppearance/SectionLayout.html#/s:10ListableUI14GridAppearanceV13SectionLayoutV5widthAeA11CustomWidthO_tcfc":{"name":"init(width:)","abstract":"

    Undocumented

    ","parent_name":"SectionLayout"},"Structs/GridAppearance/HeaderFooterLayout.html#/s:10ListableUI14GridAppearanceV18HeaderFooterLayoutV5widthAA11CustomWidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/GridAppearance/HeaderFooterLayout.html#/s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ":{"name":"defaultValue","parent_name":"HeaderFooterLayout"},"Structs/GridAppearance/HeaderFooterLayout.html#/s:10ListableUI14GridAppearanceV18HeaderFooterLayoutV5widthAeA11CustomWidthO_tcfc":{"name":"init(width:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayout"},"Structs/GridAppearance/ItemLayout.html#/s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","parent_name":"ItemLayout"},"Structs/GridAppearance/ItemLayout.html#/s:10ListableUI14GridAppearanceV10ItemLayoutVAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ItemLayout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV7paddingSo12UIEdgeInsetsVvp":{"name":"padding","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV5widthAA15WidthConstraintOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV31interSectionSpacingWithNoFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithNoFooter","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV29interSectionSpacingWithFooter12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacingWithFooter","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV26sectionHeaderBottomSpacing12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderBottomSpacing","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV26itemToSectionFooterSpacing12CoreGraphics7CGFloatVvp":{"name":"itemToSectionFooterSpacing","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV7padding5width31interSectionSpacingWithNoFooter0hijkM0019sectionHeaderBottomJ006itemToimJ0AESo12UIEdgeInsetsV_AA15WidthConstraintO12CoreGraphics7CGFloatVA3Rtcfc":{"name":"init(padding:width:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemToSectionFooterSpacing:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Layout.html#/s:10ListableUI14GridAppearanceV6LayoutV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Layout"},"Structs/GridAppearance/Sizing/ItemSize.html#/s:10ListableUI14GridAppearanceV6SizingV8ItemSizeO5fixedyAGSo6CGSizeVcAGmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"ItemSize"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV8itemSizeAE04ItemG0Ovp":{"name":"itemSize","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing/ItemSize.html":{"name":"ItemSize","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV19sectionHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"sectionHeaderHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV19sectionFooterHeight12CoreGraphics7CGFloatVvp":{"name":"sectionFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV16listHeaderHeight12CoreGraphics7CGFloatVvp":{"name":"listHeaderHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV16listFooterHeight12CoreGraphics7CGFloatVvp":{"name":"listFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV22overscrollFooterHeight12CoreGraphics7CGFloatVvp":{"name":"overscrollFooterHeight","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV8itemSize19sectionHeaderHeight0h6FooterJ004listiJ00lkJ0010overscrollkJ0A2E04ItemG0O_12CoreGraphics7CGFloatVA4Ptcfc":{"name":"init(itemSize:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance/Sizing.html#/s:10ListableUI14GridAppearanceV6SizingV3set4withyyAEzXE_tF":{"name":"set(with:)","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV6sizingAC6SizingVvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV6layoutAC6LayoutVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV9directionAA15LayoutDirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV7defaultACvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance.html#/s:10ListableUI14GridAppearanceV20stickySectionHeaders6sizing6layoutACSb_AC6SizingVAC6LayoutVtcfc":{"name":"init(stickySectionHeaders:sizing:layout:)","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/Sizing.html":{"name":"Sizing","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/Layout.html":{"name":"Layout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/ItemLayout.html":{"name":"ItemLayout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/HeaderFooterLayout.html":{"name":"HeaderFooterLayout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/GridAppearance/SectionLayout.html":{"name":"SectionLayout","abstract":"

    Undocumented

    ","parent_name":"GridAppearance"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV10layoutType10appearanceACxm_y0C10AppearanceQzzctcAA04ListC0Rzlufc":{"name":"init(layoutType:appearance:)","abstract":"

    Creates a new layout description for the provided layout type, with the provided optional layout configuration.

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV17experimental_gridyACyAA14GridAppearanceVzcFZ":{"name":"experimental_grid(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV5pagedyACyAA15PagedAppearanceVzcFZ":{"name":"paged(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/LayoutDescription.html#/s:10ListableUI17LayoutDescriptionV5tableyACyAA15TableAppearanceVzcFZ":{"name":"table(_:)","abstract":"

    Undocumented

    ","parent_name":"LayoutDescription"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV11fromSectionAA0F0Vvp":{"name":"fromSection","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV13fromIndexPath10Foundation0fG0Vvp":{"name":"fromIndexPath","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV9toSectionAA0F0Vvp":{"name":"toSection","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Result.html#/s:10ListableUI10ReorderingV6ResultV11toIndexPath10Foundation0fG0Vvp":{"name":"toIndexPath","abstract":"

    Undocumented

    ","parent_name":"Result"},"Structs/Reordering/Sections.html#/s:10ListableUI10ReorderingV8SectionsO4sameyA2EmF":{"name":"same","abstract":"

    Undocumented

    ","parent_name":"Sections"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV8sectionsAC8SectionsOvp":{"name":"sections","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10CanReordera":{"name":"CanReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10canReorderSbAC6ResultVcSgvp":{"name":"canReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10DidReordera":{"name":"DidReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV10didReorderyyAC6ResultVcvp":{"name":"didReorder","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering.html#/s:10ListableUI10ReorderingV8sections10canReorder03didF0A2C8SectionsO_SbAC6ResultVcSgyAJctcfc":{"name":"init(sections:canReorder:didReorder:)","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering/Sections.html":{"name":"Sections","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/Reordering/Result.html":{"name":"Result","abstract":"

    Undocumented

    ","parent_name":"Reordering"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV10isSelected0E11HighlightedACSb_Sbtcfc":{"name":"init(isSelected:isHighlighted:)","abstract":"

    Undocumented

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV4cellACSo20UICollectionViewCellC_tcfc":{"name":"init(cell:)","abstract":"

    Undocumented

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV10isSelectedSbvp":{"name":"isSelected","abstract":"

    If the item is currently selected.

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV13isHighlightedSbvp":{"name":"isHighlighted","abstract":"

    If the item is currently highlighted.

    ","parent_name":"ItemState"},"Structs/ItemState.html#/s:10ListableUI9ItemStateV8isActiveSbvp":{"name":"isActive","abstract":"

    If the item is either selected or highlighted.

    ","parent_name":"ItemState"},"Structs/ItemLayouts.html#/s:10ListableUI11ItemLayoutsVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates a new instance of the layouts, with an optional configure","parent_name":"ItemLayouts"},"Structs/ItemLayouts.html#/s:10ListableUI11ItemLayoutsVyxxmcAA0cD5ValueRzluip":{"name":"subscript(_:)","abstract":"

    Allows accessing the various ItemLayoutsValues stored within the object.","parent_name":"ItemLayouts"},"Structs/ItemLayouts.html#/s:10ListableUI11ItemLayoutsV4gridAA14GridAppearanceV0C6LayoutVvp":{"name":"grid","abstract":"

    Undocumented

    ","parent_name":"ItemLayouts"},"Structs/ItemLayouts.html#/s:10ListableUI11ItemLayoutsV5tableAA15TableAppearanceV0C6LayoutVvp":{"name":"table","abstract":"

    Allows customization of an Item‘s layout when it is presented within a .table style layout.

    ","parent_name":"ItemLayouts"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6boundsSo6CGRectVvp":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6centerSo7CGPointVvp":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV9transformSo17CGAffineTransformVvp":{"name":"transform","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV11transform3DSo13CATransform3DVvp":{"name":"transform3D","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV5alpha12CoreGraphics7CGFloatVvp":{"name":"alpha","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV6zIndexSivp":{"name":"zIndex","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10AttributesV5frameSo6CGRectVvp":{"name":"frame","abstract":"

    Undocumented

    ","parent_name":"Attributes"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV7Preparea":{"name":"Prepare","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV02onD0yyAC10AttributesVzcvp":{"name":"onInsert","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV9onRemovalyyAC10AttributesVzcvp":{"name":"onRemoval","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV02onD00H7RemovalACyAC10AttributesVzc_yAGzctcfc":{"name":"init(onInsert:onRemoval:)","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV10attributesACyAC10AttributesVzc_tcfc":{"name":"init(attributes:)","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations/Attributes.html":{"name":"Attributes","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV4fadeACvpZ":{"name":"fade","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV5rightACvpZ":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV4leftACvpZ":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV3topACvpZ":{"name":"top","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV6bottomACvpZ":{"name":"bottom","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV9scaleDownACvpZ":{"name":"scaleDown","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ItemInsertAndRemoveAnimations.html#/s:10ListableUI29ItemInsertAndRemoveAnimationsV7scaleUpACvpZ":{"name":"scaleUp","abstract":"

    Undocumented

    ","parent_name":"ItemInsertAndRemoveAnimations"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV5stateAA0D5StateVvp":{"name":"state","abstract":"

    The state of the Item currently displaying the content. Is it highlighted, selected, etc.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV8positionAA0D8PositionOvp":{"name":"position","abstract":"

    The position of the item within its section.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV10reorderingAA17ReorderingActionsCvp":{"name":"reordering","abstract":"

    Provides access to actions to handle re-ordering the content within the list.

    ","parent_name":"ApplyItemContentInfo"},"Structs/ApplyItemContentInfo.html#/s:10ListableUI20ApplyItemContentInfoV11environmentAA15ListEnvironmentVvp":{"name":"environment","abstract":"

    The environment of the containing list.","parent_name":"ApplyItemContentInfo"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV7content0D4ViewQzvp":{"name":"content","abstract":"

    The content view of the content.

    ","parent_name":"ItemContentViews"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV10background14BackgroundViewQzvp":{"name":"background","abstract":"

    The background view of the content.

    ","parent_name":"ItemContentViews"},"Structs/ItemContentViews.html#/s:10ListableUI16ItemContentViewsV18selectedBackground08SelectedG4ViewQzvp":{"name":"selectedBackground","abstract":"

    The selected background view of the content.","parent_name":"ItemContentViews"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6sizingAA6SizingOSgvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV7layoutsAA0D7LayoutsVSgvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV14selectionStyleAA0d9SelectionG0OSgvp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV25insertAndRemoveAnimationsAA0d6InsertghI0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV12swipeActionsAA05SwipeG13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/DefaultItemProperties.html#/s:10ListableUI21DefaultItemPropertiesV6sizing7layouts14selectionStyle25insertAndRemoveAnimations12swipeActionsACyxGAA6SizingOSg_AA0D7LayoutsVSgAA0d9SelectionI0OSgAA0d6InsertklM0VSgAA05SwipeO13ConfigurationVSgtcfc":{"name":"init(sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:)","abstract":"

    Undocumented

    ","parent_name":"DefaultItemProperties"},"Structs/HeaderFooterLayouts.html#/s:10ListableUI19HeaderFooterLayoutsVyACyACzXEcfc":{"name":"init(_:)","abstract":"

    Creates a new instance of the layouts, with an optional configure","parent_name":"HeaderFooterLayouts"},"Structs/HeaderFooterLayouts.html#/s:10ListableUI19HeaderFooterLayoutsVyxxmcAA0cdE5ValueRzluip":{"name":"subscript(_:)","abstract":"

    Allows accessing the various HeaderFooterLayoutValues stored within the object.","parent_name":"HeaderFooterLayouts"},"Structs/HeaderFooterLayouts.html#/s:10ListableUI19HeaderFooterLayoutsV4gridAA14GridAppearanceV0cD6LayoutVvp":{"name":"grid","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterLayouts"},"Structs/HeaderFooterLayouts.html#/s:10ListableUI19HeaderFooterLayoutsV5tableAA15TableAppearanceV0cD6LayoutVvp":{"name":"table","abstract":"

    Allows customization of a HeaderFooter‘s layout when it is presented within a .table style layout.

    ","parent_name":"HeaderFooterLayouts"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV7content0E4ViewQzvp":{"name":"content","abstract":"

    The content view of the content.

    ","parent_name":"HeaderFooterContentViews"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV10background14BackgroundViewQzvp":{"name":"background","abstract":"

    The background view of the content.

    ","parent_name":"HeaderFooterContentViews"},"Structs/HeaderFooterContentViews.html#/s:10ListableUI24HeaderFooterContentViewsV7pressed21PressedBackgroundViewQzvp":{"name":"pressed","abstract":"

    The background view of the content that’s displayed while a press is active.

    ","parent_name":"HeaderFooterContentViews"},"Structs/ApplyHeaderFooterContentInfo.html#/s:10ListableUI28ApplyHeaderFooterContentInfoV11environmentAA15ListEnvironmentVvp":{"name":"environment","abstract":"

    The environment of the containing list.","parent_name":"ApplyHeaderFooterContentInfo"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV7contentxvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV7layoutsAA0cD7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5OnTapa":{"name":"OnTap","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5onTapyxcSgvp":{"name":"onTap","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV_5buildACyxGx_yAEzXEtcfc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV_6sizing7layouts5onTapACyxGx_AA6SizingOAA0cD7LayoutsVyxcSgtcfc":{"name":"init(_:sizing:layouts:onTap:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0jcD11ContentInfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV15anyIsEquivalent2toSbAA03AnycD0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/HeaderFooter.html#/s:10ListableUI12HeaderFooterV015newPresentationcD5State24performsContentCallbacksypSb_tF":{"name":"newPresentationHeaderFooterState(performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooter"},"Structs/EmbeddedList/Sizing.html#/s:10ListableUI12EmbeddedListV6SizingO7defaultyA2EmF":{"name":"default","abstract":"

    Falls back to the default sizing of Items in the list view.

    ","parent_name":"Sizing"},"Structs/EmbeddedList/Sizing.html#/s:10ListableUI12EmbeddedListV6SizingO5fixedyAE12CoreGraphics7CGFloatV_AItcAEmF":{"name":"fixed(width:height:)","abstract":"

    A fixed size item with the given width or height.

    ","parent_name":"Sizing"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV10propertiesAA0D10PropertiesVvp":{"name":"properties","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV17contentIdentifiers11AnyHashableVvp":{"name":"contentIdentifier","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI12EmbeddedListV10identifier5buildACx_yAA0D10PropertiesVzXEtcSHRzlufc":{"name":"init(identifier:build:)","abstract":"

    Undocumented

    ","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP0D4ViewQa":{"name":"ContentView","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp":{"name":"identifier","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF":{"name":"apply(to:for:with:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList.html#/s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","parent_name":"EmbeddedList"},"Structs/EmbeddedList/Sizing.html":{"name":"Sizing","abstract":"

    How you specify sizing for an embedded list. The surface area","parent_name":"EmbeddedList"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV3oldACyxGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnUpdate.html#/s:10ListableUI4ItemV8OnUpdateV3newACyxGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"OnUpdate"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV3oldACyxGvp":{"name":"old","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnMove.html#/s:10ListableUI4ItemV6OnMoveV3newACyxGvp":{"name":"new","abstract":"

    Undocumented

    ","parent_name":"OnMove"},"Structs/Item/OnRemove.html#/s:10ListableUI4ItemV8OnRemoveV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnRemove"},"Structs/Item/OnRemove.html#/s:10ListableUI4ItemV8OnRemoveV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnRemove"},"Structs/Item/OnInsert.html#/s:10ListableUI4ItemV8OnInsertV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnInsert"},"Structs/Item/OnInsert.html#/s:10ListableUI4ItemV8OnInsertV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnInsert"},"Structs/Item/OnDeselect.html#/s:10ListableUI4ItemV10OnDeselectV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnDeselect"},"Structs/Item/OnDeselect.html#/s:10ListableUI4ItemV10OnDeselectV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnDeselect"},"Structs/Item/OnSelect.html#/s:10ListableUI4ItemV8OnSelectV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnSelect"},"Structs/Item/OnSelect.html#/s:10ListableUI4ItemV8OnSelectV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnSelect"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnEndDisplay.html#/s:10ListableUI4ItemV12OnEndDisplayV07isFirsteF0Sbvp":{"name":"isFirstEndDisplay","abstract":"

    Undocumented

    ","parent_name":"OnEndDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV8Callbacka":{"name":"Callback","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV4itemACyxGvp":{"name":"item","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item/OnDisplay.html#/s:10ListableUI4ItemV9OnDisplayV07isFirstE0Sbvp":{"name":"isFirstDisplay","abstract":"

    Undocumented

    ","parent_name":"OnDisplay"},"Structs/Item.html#/s:10ListableUI4ItemV10identifierAA13AnyIdentifierCvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV7contentxvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV7layoutsAA0C7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV14selectionStyleAA0c9SelectionE0Ovp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV25insertAndRemoveAnimationsAA0c6InsertefG0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV12swipeActionsAA05SwipeE13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10reorderingAA10ReorderingVSgvp":{"name":"reordering","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV9onDisplayyAC02OnE0Vyx_GcSgvp":{"name":"onDisplay","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV12onEndDisplayyAC02OneF0Vyx_GcSgvp":{"name":"onEndDisplay","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onSelectyAC02OnE0Vyx_GcSgvp":{"name":"onSelect","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10onDeselectyAC02OnE0Vyx_GcSgvp":{"name":"onDeselect","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onInsertyAC02OnE0Vyx_GcSgvp":{"name":"onInsert","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onRemoveyAC02OnE0Vyx_GcSgvp":{"name":"onRemove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV6onMoveyAC02OnE0Vyx_GcSgvp":{"name":"onMove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV8onUpdateyAC02OnE0Vyx_GcSgvp":{"name":"onUpdate","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV_5buildACyxGx_yAEzXEtcfc":{"name":"init(_:build:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV_6sizing7layouts14selectionStyle25insertAndRemoveAnimations12swipeActions10reordering9onDisplay0o3EndP00O6Select0O8Deselect0O6Insert0oJ00O4Move0O6UpdateACyxGx_AA6SizingOSgAA0C7LayoutsVSgAA0c9SelectionG0OSgAA0ctijK0VSgAA05SwipeM13ConfigurationVSgAA10ReorderingVSgyAC02OnP0Vyx_GcSgyAC02OnqP0Vyx_GcSgyAC02OnR0Vyx_GcSgyAC02OnS0Vyx_GcSgyAC02OnT0Vyx_GcSgyAC02OnJ0Vyx_GcSgyAC02OnU0Vyx_GcSgyAC02OnV0Vyx_GcSgtcfc":{"name":"init(_:sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV10anyContentypvp":{"name":"anyContent","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV15anyIsEquivalent2toSbAA03AnyC0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV11anyWasMoved10comparedToSbAA03AnyC0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemV015newPresentationC5State4with15updateCallbacks015performsContentI0ypAA0cF12DependenciesV_AA06UpdateI0CSbtF":{"name":"newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnDisplay.html":{"name":"OnDisplay","abstract":"

    Value passed to the onDisplay callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnEndDisplay.html":{"name":"OnEndDisplay","abstract":"

    Value passed to the onEndDisplay callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnSelect.html":{"name":"OnSelect","abstract":"

    Value passed to the onSelect callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnDeselect.html":{"name":"OnDeselect","abstract":"

    Value passed to the onDeselect callback for Item.

    ","parent_name":"Item"},"Structs/Item/OnInsert.html":{"name":"OnInsert","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnRemove.html":{"name":"OnRemove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnMove.html":{"name":"OnMove","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item/OnUpdate.html":{"name":"OnUpdate","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemVA2A12EmbeddedListVRszrlE4list_6sizing5buildACyAEGqd___AE6SizingOyAA0E10PropertiesVzXEtSHRd__lFZ":{"name":"list(_:sizing:build:)","abstract":"

    Creates an Item which can be used to embed a list inside another list,","parent_name":"Item"},"Structs/Item.html#/s:10ListableUI4ItemVA2A019LocalizedCollatableC7ContentRzrlE15collationStringSSvp":{"name":"collationString","abstract":"

    Undocumented

    ","parent_name":"Item"},"Structs/Content.html#/s:10ListableUI7ContentV10identifiers11AnyHashableVSgvp":{"name":"identifier","abstract":"

    The identifier for the content, defaults to nil.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14refreshControlAA07RefreshE0VSgvp":{"name":"refreshControl","abstract":"

    The refresh control, if any, associated with the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV6headerAA15AnyHeaderFooter_pSgvp":{"name":"header","abstract":"

    The header for the list, usually displayed before all other content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV6footerAA15AnyHeaderFooter_pSgvp":{"name":"footer","abstract":"

    The footer for the list, usually displayed after all other content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV16overscrollFooterAA09AnyHeaderE0_pSgvp":{"name":"overscrollFooter","abstract":"

    The overscroll footer for the list, which is displayed below the bottom bounds of the visible frame,","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8sectionsSayAA7SectionVGvp":{"name":"sections","abstract":"

    All sections in the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV16nonEmptySectionsSayAA7SectionVGvp":{"name":"nonEmptySections","abstract":"

    Any sections that have a non-zero number of items.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV9itemCountSivp":{"name":"itemCount","abstract":"

    The total number of items in all of the sections in the list.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8contains3anySbShyAA0C7FiltersOG_tF":{"name":"contains(any:)","abstract":"

    Check if the content contains any of the given types, which you specify via the filters","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV5Builda":{"name":"Build","abstract":"

    Undocumented

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV4withACyACzXE_tcfc":{"name":"init(with:)","abstract":"

    Creates a new instance, configured as needed via the provided builder block.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV10identifier14refreshControl6header6footer16overscrollFooter8sectionsACs11AnyHashableVSg_AA07RefreshF0VSgAA0l6HeaderJ0_pSgA2QSayAA7SectionVGtcfc":{"name":"init(identifier:refreshControl:header:footer:overscrollFooter:sections:)","abstract":"

    Creates a new instance with the provided parameters.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV9firstItemAA03AnyE0_pSgvp":{"name":"firstItem","abstract":"

    The first Item in the content. Returns nil if there is no content in any section.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV8lastItemAA03AnyE0_pSgvp":{"name":"lastItem","abstract":"

    The last Item in the content. Returns nil if there is no content in any section.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV4item2atAA7AnyItem_p10Foundation9IndexPathV_tF":{"name":"item(at:)","abstract":"

    Returns the Item at the given IndexPath.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14firstIndexPath3for10Foundation0eF0VSgAA13AnyIdentifierC_tF":{"name":"firstIndexPath(for:)","abstract":"

    Returns the first IndexPath for the contained Item with the given AnyIdentifier,","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV13lastIndexPath10Foundation0eF0VSgyF":{"name":"lastIndexPath()","abstract":"

    Returns the IndexPath of the last Item in the content.","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV11removeEmptyyyF":{"name":"removeEmpty()","abstract":"

    Removes all Sections that do not contain any Items.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV3addyyAA7SectionVF":{"name":"add(_:)","abstract":"

    Appends a Section to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV2peoiyyACz_AA7SectionVtFZ":{"name":"+=(_:_:)","abstract":"

    Appends a Section to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV2peoiyyACz_SayAA7SectionVGtFZ":{"name":"+=(_:_:)","abstract":"

    Appends a list of Sections to the end of the Content.

    ","parent_name":"Content"},"Structs/Content.html#/s:10ListableUI7ContentV14callAsFunction_9configureyx_yAA7SectionVzXEtSHRzlF":{"name":"callAsFunction(_:configure:)","abstract":"

    Allows streamlined creation of sections when building a list, leveraging Swift’s callAsFunction","parent_name":"Content"},"Structs/Color.html#/s:10ListableUI5ColorV12wrappedValueSo7UIColorCvp":{"name":"wrappedValue","abstract":"

    The underlying color value.

    ","parent_name":"Color"},"Structs/Color.html#/s:10ListableUI5ColorVyACSo7UIColorCcfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"Color"},"Structs/Color.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Color"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO3topyA2GmF":{"name":"top","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6centeryA2GmF":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow/Alignment.html#/s:10ListableUI8BehaviorV9UnderflowV9AlignmentO6bottomyA2GmF":{"name":"bottom","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV12alwaysBounceSbvp":{"name":"alwaysBounce","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV9alignmentAE9AlignmentOvp":{"name":"alignment","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow.html#/s:10ListableUI8BehaviorV9UnderflowV12alwaysBounce9alignmentAESb_AE9AlignmentOtcfc":{"name":"init(alwaysBounce:alignment:)","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/Underflow/Alignment.html":{"name":"Alignment","abstract":"

    Undocumented

    ","parent_name":"Underflow"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO4noneyA2EmF":{"name":"none","abstract":"

    The list view does not allow any selections.

    ","parent_name":"SelectionMode"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO6singleyAESb_tcAEmF":{"name":"single(clearsSelectionOnViewWillAppear:)","abstract":"

    The list view allows single selections. When an item is selected, the previously selected item (if any)","parent_name":"SelectionMode"},"Structs/Behavior/SelectionMode.html#/s:10ListableUI8BehaviorV13SelectionModeO8multipleyA2EmF":{"name":"multiple","abstract":"

    The list view allows multiple selections. It is your responsibility to update the content","parent_name":"SelectionMode"},"Structs/Behavior/ScrollsToTop.html#/s:10ListableUI8BehaviorV12ScrollsToTopO8disabledyA2EmF":{"name":"disabled","abstract":"

    No action is performed when the user taps on the status bar.

    ","parent_name":"ScrollsToTop"},"Structs/Behavior/ScrollsToTop.html#/s:10ListableUI8BehaviorV12ScrollsToTopO7enabledyA2EmF":{"name":"enabled","abstract":"

    When the user taps on the status bar, scroll to the top of the list.

    ","parent_name":"ScrollsToTop"},"Structs/Behavior/KeyboardAdjustmentMode.html#/s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO4noneyA2EmF":{"name":"none","abstract":"

    The contentInset of the list is not adjusted when the keyboard appears or disappears.

    ","parent_name":"KeyboardAdjustmentMode"},"Structs/Behavior/KeyboardAdjustmentMode.html#/s:10ListableUI8BehaviorV22KeyboardAdjustmentModeO18adjustsWhenVisibleyA2EmF":{"name":"adjustsWhenVisible","abstract":"

    The contentInset of the list is adjusted when the keyboard appears or disappears.

    ","parent_name":"KeyboardAdjustmentMode"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV19keyboardDismissModeSo020UIScrollViewKeyboardeF0Vvp":{"name":"keyboardDismissMode","abstract":"

    How the keyboard should be dismissed (if at all) based on scrolling of the list view.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV22keyboardAdjustmentModeAC08KeyboardeF0Ovp":{"name":"keyboardAdjustmentMode","abstract":"

    How to adjust the contentInset of the list when the keyboard visibility changes.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV12scrollsToTopAC07ScrollseF0Ovp":{"name":"scrollsToTop","abstract":"

    How the list should react when the user taps the application status bar.","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV13selectionModeAC09SelectionE0Ovp":{"name":"selectionMode","abstract":"

    How the list should respond to selection attempts.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV9underflowAC9UnderflowVvp":{"name":"underflow","abstract":"

    How the list should behave when its content takes up less space than is available in the list view.","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV23canCancelContentTouchesSbvp":{"name":"canCancelContentTouches","abstract":"

    A Boolean value that controls whether touches in the content view always lead to tracking.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV20delaysContentTouchesSbvp":{"name":"delaysContentTouches","abstract":"

    A Boolean value that determines whether the scroll view delays the handling of touch-down gestures.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV15isPagingEnabledSbvp":{"name":"isPagingEnabled","abstract":"

    Is paging enabled on the underlying scroll view.

    ","parent_name":"Behavior"},"Structs/Behavior.html#/s:10ListableUI8BehaviorV19keyboardDismissMode0d10AdjustmentF012scrollsToTop09selectionF09underflow23canCancelContentTouches06delaysoP015isPagingEnabledACSo020UIScrollViewKeyboardeF0V_AC0wgF0OAC07ScrollsiJ0OAC09SelectionF0OAC9UnderflowVS3btcfc":{"name":"init(keyboardDismissMode:keyboardAdjustmentMode:scrollsToTop:selectionMode:underflow:canCancelContentTouches:delaysContentTouches:isPagingEnabled:)","abstract":"

    Creates a new Behavior based on the provided parameters.

    ","parent_name":"Behavior"},"Structs/Behavior/KeyboardAdjustmentMode.html":{"name":"KeyboardAdjustmentMode","abstract":"

    How to adjust the contentInset of the list when the keyboard visibility changes.

    ","parent_name":"Behavior"},"Structs/Behavior/ScrollsToTop.html":{"name":"ScrollsToTop","abstract":"

    How to react when the user taps on the status bar of the application.

    ","parent_name":"Behavior"},"Structs/Behavior/SelectionMode.html":{"name":"SelectionMode","abstract":"

    The selection mode of the list view, which controls how many items (if any) can be selected at once.

    ","parent_name":"Behavior"},"Structs/Behavior/Underflow.html":{"name":"Underflow","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV15backgroundColorSo7UIColorCvp":{"name":"backgroundColor","abstract":"

    The background color for the list.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV21showsScrollIndicatorsSbvp":{"name":"showsScrollIndicators","abstract":"

    If the list should display its scroll indicators.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV15backgroundColor21showsScrollIndicators9configureACSo7UIColorC_SbyACzXEtcfc":{"name":"init(backgroundColor:showsScrollIndicators:configure:)","abstract":"

    Creates a new appearance object with the provided options.

    ","parent_name":"Appearance"},"Structs/Appearance.html#/s:10ListableUI10AppearanceV22defaultBackgroundColorSo7UIColorCvpZ":{"name":"defaultBackgroundColor","abstract":"

    The default background color for the Appearance.

    ","parent_name":"Appearance"},"Structs/Appearance.html":{"name":"Appearance","abstract":"

    Contains all the properties which affect the appearance of all possible kinds of list layouts.

    "},"Structs/Behavior.html":{"name":"Behavior","abstract":"

    Controls various behaviors of the list view, such as keyboard dismissal, selection mode, and behavior"},"Structs/Color.html":{"name":"Color","abstract":"

    A color wrapper which provides equatability for"},"Structs/Content.html":{"name":"Content","abstract":"

    Undocumented

    "},"Structs/Item.html":{"name":"Item","abstract":"

    Undocumented

    "},"Structs/EmbeddedList.html":{"name":"EmbeddedList","abstract":"

    Describes item content which can be used to embed a list inside another list,"},"Structs/HeaderFooter.html":{"name":"HeaderFooter","abstract":"

    Undocumented

    "},"Structs/ApplyHeaderFooterContentInfo.html":{"name":"ApplyHeaderFooterContentInfo","abstract":"

    Information about the current state of the content, which is passed to apply(to:for:with:)"},"Structs/HeaderFooterContentViews.html":{"name":"HeaderFooterContentViews","abstract":"

    The views owned by the item content, passed to the apply(to:) method to theme and provide content.

    "},"Structs/HeaderFooterLayouts.html":{"name":"HeaderFooterLayouts","abstract":"

    HeaderFooterLayouts allows you to provide ListLayout-specific layout configuration for"},"Structs.html#/s:10ListableUI21ItemStateDependenciesV":{"name":"ItemStateDependencies","abstract":"

    Undocumented

    "},"Structs/DefaultItemProperties.html":{"name":"DefaultItemProperties","abstract":"

    Allows specifying default properties to apply to an item when it is initialized,"},"Structs/ItemContentViews.html":{"name":"ItemContentViews","abstract":"

    The views owned by the item content, passed to the apply(to:) method to theme and provide content.

    "},"Structs/ApplyItemContentInfo.html":{"name":"ApplyItemContentInfo","abstract":"

    Information about the current state of the content, which is passed to apply(to:for:with:)"},"Structs/ItemInsertAndRemoveAnimations.html":{"name":"ItemInsertAndRemoveAnimations","abstract":"

    Undocumented

    "},"Structs/ItemLayouts.html":{"name":"ItemLayouts","abstract":"

    ItemLayouts allows you to provide ListLayout-specific layout configuration for"},"Structs/ItemState.html":{"name":"ItemState","abstract":"

    Undocumented

    "},"Structs/Reordering.html":{"name":"Reordering","abstract":"

    Undocumented

    "},"Structs/LayoutDescription.html":{"name":"LayoutDescription","abstract":"

    A LayoutDescription, well, describes the type of and properties of a layout to apply to a list view.

    "},"Structs/GridAppearance.html":{"name":"GridAppearance","abstract":"

    Undocumented

    "},"Structs/SectionLayouts.html":{"name":"SectionLayouts","abstract":"

    SectionLayouts allows you to provide ListLayout-specific layout configuration for"},"Structs/ListLayoutAttributes.html":{"name":"ListLayoutAttributes","abstract":"

    Undocumented

    "},"Structs/ListLayoutDefaults.html":{"name":"ListLayoutDefaults","abstract":"

    Undocumented

    "},"Structs/ListLayoutScrollViewProperties.html":{"name":"ListLayoutScrollViewProperties","abstract":"

    Undocumented

    "},"Structs/ListLayoutPoint.html":{"name":"ListLayoutPoint","abstract":"

    Undocumented

    "},"Structs/ListLayoutSize.html":{"name":"ListLayoutSize","abstract":"

    Undocumented

    "},"Structs/PagedAppearance.html":{"name":"PagedAppearance","abstract":"

    Describes the available appearance configuration options for a paged list layout."},"Structs/TableAppearance.html":{"name":"TableAppearance","abstract":"

    TableAppearance defines the appearance and layout attribute for list layouts within a Listable list.

    "},"Structs/ListEnvironment.html":{"name":"ListEnvironment","abstract":"

    An environment of keys and values that are passed to every ItemContent and HeaderFooter"},"Structs/ListProperties.html":{"name":"ListProperties","abstract":"

    The ListProperties object describes all of the given values needed to configure"},"Structs/ListScrollPositionInfo.html":{"name":"ListScrollPositionInfo","abstract":"

    Information about the current scroll position of a list,"},"Structs/ListStateObserver.html":{"name":"ListStateObserver","abstract":"

    Allows reading state and events based on state changes within the list view."},"Structs/LocalizedItemCollator.html":{"name":"LocalizedItemCollator","abstract":"

    If you’re looking for the equivalent of UILocalizedIndexedCollation for lists,"},"Structs/ItemPreview.html":{"name":"ItemPreview","abstract":"

    A SwiftUI view that you can use to preview your Item or ItemContent"},"Structs/ItemPreviewAppearance.html":{"name":"ItemPreviewAppearance","abstract":"

    The appearance options for a preview item.

    "},"Structs/RefreshControl.html":{"name":"RefreshControl","abstract":"

    Undocumented

    "},"Structs/ScrollPosition.html":{"name":"ScrollPosition","abstract":"

    Specifies how to position an item in a list when requesting the list scrolls to it.

    "},"Structs/Section.html":{"name":"Section","abstract":"

    Undocumented

    "},"Structs/HorizontalPadding.html":{"name":"HorizontalPadding","abstract":"

    Undocumented

    "},"Structs/SwipeActionsConfiguration.html":{"name":"SwipeActionsConfiguration","abstract":"

    Use SwipeActionsConfiguration to configure an item with SwipeActions."},"Structs/SwipeAction.html":{"name":"SwipeAction","abstract":"

    Create SwipeActions to define actions that can be performed in a SwipeActionsConfiguration.

    "},"Protocols/SectionLayoutsValue.html#/s:10ListableUI19SectionLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","abstract":"

    The default value used when accessing the value, if none is set.

    ","parent_name":"SectionLayoutsValue"},"Protocols/AnySectionInfo.html#/s:10ListableUI14AnySectionInfoP13anyIdentifierAA0cG0Cvp":{"name":"anyIdentifier","abstract":"

    Undocumented

    ","parent_name":"AnySectionInfo"},"Protocols/AnySectionInfo.html#/s:10ListableUI14AnySectionInfoP11anyWasMoved10comparedToSbAaB_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"AnySectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoP10identifierAA10IdentifierCyxGvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoP8wasMoved10comparedToSbx_tF":{"name":"wasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoPAAE13anyIdentifierAA03AnyF0Cvp":{"name":"anyIdentifier","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/SectionInfo.html#/s:10ListableUI11SectionInfoPAAE11anyWasMoved10comparedToSbAA03AnycD0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"SectionInfo"},"Protocols/AnyLocalizedCollatableItem.html#/s:10ListableUI26AnyLocalizedCollatableItemP15collationStringSSvp":{"name":"collationString","abstract":"

    Undocumented

    ","parent_name":"AnyLocalizedCollatableItem"},"Protocols/LocalizedCollatableItemContent.html#/s:10ListableUI30LocalizedCollatableItemContentP15collationStringSSvp":{"name":"collationString","abstract":"

    A string that represents the primary content of your ItemContent; usually a name or title.

    ","parent_name":"LocalizedCollatableItemContent"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP5StateQa":{"name":"State","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP7content4withADyAA0E5StateCy0H0QzG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListViewSource.html#/s:10ListableUI14ListViewSourceP7content4withAA7ContentVAA0E5StateCy0I0QzG_tF":{"name":"content(with:)","abstract":"

    Undocumented

    ","parent_name":"ListViewSource"},"Protocols/ListEnvironmentKey.html#/s:10ListableUI18ListEnvironmentKeyP5ValueQa":{"name":"Value","abstract":"

    The type of value stored by this key.

    ","parent_name":"ListEnvironmentKey"},"Protocols/ListEnvironmentKey.html#/s:10ListableUI18ListEnvironmentKeyP12defaultValue0G0QzvpZ":{"name":"defaultValue","abstract":"

    The default value that will be vended by an Environment for this key if no other value has been set.

    ","parent_name":"ListEnvironmentKey"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP7defaultxvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP9directionAA0D9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/ListLayoutAppearance.html#/s:10ListableUI20ListLayoutAppearanceP20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListLayoutAppearance"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP7contentAA0dE7ContentCvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP20scrollViewPropertiesAA0de6ScrollgH0Vvp":{"name":"scrollViewProperties","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP9directionAA0E9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP06updateE02inySo16UICollectionViewC_tF":{"name":"updateLayout(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP6layout8delegate2inyAA014CollectionViewE8Delegate_p_So012UICollectionJ0CtF":{"name":"layout(delegate:in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutP11setZIndexesyyF":{"name":"setZIndexes()","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE19visibleContentFrame3forSo6CGRectVSo16UICollectionViewC_tF":{"name":"visibleContentFrame(for:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE36positionStickySectionHeadersIfNeeded2inySo16UICollectionViewC_tF":{"name":"positionStickySectionHeadersIfNeeded(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE30updateOverscrollFooterPosition2inySo16UICollectionViewC_tF":{"name":"updateOverscrollFooterPosition(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyListLayout.html#/s:10ListableUI13AnyListLayoutPAAE018adjustPositionsForE9Underflow2inySo16UICollectionViewC_tF":{"name":"adjustPositionsForLayoutUnderflow(in:)","abstract":"

    Undocumented

    ","parent_name":"AnyListLayout"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP011createEmptyD010appearance8behaviorAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVtF":{"name":"createEmptyLayout(appearance:behavior:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP015createPopulatedD010appearance8behavior8delegateAA0c4ListD0_pAA10AppearanceV_AA8BehaviorVAA014CollectionViewD8Delegate_ptF":{"name":"createPopulatedLayout(appearance:behavior:delegate:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP13shouldRebuild6layoutSbAA0c4ListD0_p_tF":{"name":"shouldRebuild(layout:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/AnyLayoutDescriptionConfiguration.html#/s:10ListableUI33AnyLayoutDescriptionConfigurationP06isSameD4Type2asSbAaB_p_tF":{"name":"isSameLayoutType(as:)","abstract":"

    Undocumented

    ","parent_name":"AnyLayoutDescriptionConfiguration"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP0D10AppearanceQa":{"name":"LayoutAppearance","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP8defaultsAA0cD8DefaultsVvpZ":{"name":"defaults","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP16layoutAppearance0dF0Qzvp":{"name":"layoutAppearance","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutP16layoutAppearance10appearance8behavior7contentx0dF0Qz_AA0F0VAA8BehaviorVAA0cD7ContentCtcfc":{"name":"init(layoutAppearance:appearance:behavior:content:)","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE8describe10appearanceAA0D11DescriptionVy0D10AppearanceQzzc_tFZ":{"name":"describe(appearance:)","abstract":"

    Creates a new layout description for a list layout, with the provided optional layout configuration.

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE9directionAA0D9DirectionOvp":{"name":"direction","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/ListLayout.html#/s:10ListableUI10ListLayoutPAAE20stickySectionHeadersSbvp":{"name":"stickySectionHeaders","abstract":"

    Undocumented

    ","parent_name":"ListLayout"},"Protocols/CollectionViewLayoutDelegate.html#/s:10ListableUI28CollectionViewLayoutDelegateP04listdE20UpdatedItemPositionsyySo012UICollectionD0CF":{"name":"listViewLayoutUpdatedItemPositions(_:)","abstract":"

    Undocumented

    ","parent_name":"CollectionViewLayoutDelegate"},"Protocols/CollectionViewLayoutDelegate.html#/s:10ListableUI28CollectionViewLayoutDelegateP04listE7Content8defaultsAA04ListeH0CAA0jE8DefaultsV_tF":{"name":"listLayoutContent(defaults:)","abstract":"

    Undocumented

    ","parent_name":"CollectionViewLayoutDelegate"},"Protocols/ItemLayoutsValue.html#/s:10ListableUI16ItemLayoutsValueP07defaultE0xvpZ":{"name":"defaultValue","abstract":"

    The default value used when accessing the value, if none is set.

    ","parent_name":"ItemLayoutsValue"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP0cD4TypeQa":{"name":"ItemContentType","abstract":"

    The type of ItemContent associated with this coordinator.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp":{"name":"actions","abstract":"

    The available actions you can perform on the coordinated Item. Eg, updating it to a new value.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp":{"name":"info","abstract":"

    Info about the coordinated Item, such as its original and current value.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11wasInsertedyyAA0C0V8OnInsertVy0cD4TypeQz_GF":{"name":"wasInserted(_:)","abstract":"

    Invoked on the coordinator when it is first created and configured.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP10wasRemovedyyAA0C0V8OnRemoveVy0cD4TypeQz_GF":{"name":"wasRemoved(_:)","abstract":"

    Invoked on the coordinator when its owned item is removed from the list due to","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP8wasMovedyyAA0C0V6OnMoveVy0cD4TypeQz_GF":{"name":"wasMoved(_:)","abstract":"

    Invoked on the coordinator when its owned item is moved inside a list due to its","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP10wasUpdatedyyAA0C0V8OnUpdateVy0cD4TypeQz_GF":{"name":"wasUpdated(_:)","abstract":"

    Invoked on the coordinator when an external update is pushed onto the owned Item.","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4Viewa":{"name":"View","abstract":"

    The view type associated with the item.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp":{"name":"view","abstract":"

    The view, if any, currently used to display the item.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11willDisplay4withy0cD4Type_0D4ViewQZ_tF":{"name":"willDisplay(with:)","abstract":"

    Invoked when the list is about to begin displaying the item with the given view.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP13didEndDisplay4withy0cD4Type_0D4ViewQZ_tF":{"name":"didEndDisplay(with:)","abstract":"

    Invoked when the list is about to complete displaying the item with the given view.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP11wasSelectedyyF":{"name":"wasSelected()","abstract":"

    Invoked when the item is selected, via either user interaction or the selectionStyle.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP13wasDeselectedyyF":{"name":"wasDeselected()","abstract":"

    Invoked when the item is deselected, via either user interaction or the selectionStyle.

    ","parent_name":"ItemContentCoordinator"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP05swipeF5Width12CoreGraphics7CGFloatVvp":{"name":"swipeActionsWidth","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP16didPerformActionxySbc_tcfc":{"name":"init(didPerformAction:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP5apply7actionsyAA0eF13ConfigurationV_tF":{"name":"apply(actions:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContentSwipeActionsView.html#/s:10ListableUI27ItemContentSwipeActionsViewP5apply5stateyAA0E11ActionStateO_tF":{"name":"apply(state:)","abstract":"

    Undocumented

    ","parent_name":"ItemContentSwipeActionsView"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP10identifierAA10IdentifierCyxGvp":{"name":"identifier","abstract":"

    Identifies the content across updates to the list. This value must remain the same,","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP07defaultC10PropertiesAA07DefaultcF0VyxGvp":{"name":"defaultItemProperties","abstract":"

    Default values to assign to various properties on the Item which wraps","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP5apply2to3for4withyAA0cD5ViewsVyxG_AA11ApplyReasonOAA0jcD4InfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Called when rendering the content. This is where you should push data from your","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP8wasMoved10comparedToSbx_tF":{"name":"wasMoved(comparedTo:)","abstract":"

    Return true if the content’s sort changed based on the old value passed into the function.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","abstract":"

    Return false if the content’ changed based on the old value passed into the function.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP16SwipeActionsViewQa":{"name":"SwipeActionsView","abstract":"

    The view type to use to render swipe actions (delete, etc) for this content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP0D4ViewQa":{"name":"ContentView","abstract":"

    The content view used to draw the content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP014createReusableD4View5frame0dG0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","abstract":"

    Create and return a new content view used to render the content.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP11CoordinatorQa":{"name":"Coordinator","abstract":"

    The coordinator type to use to manage the live state of the Item and ItemContent,","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP18CoordinatorActionsa":{"name":"CoordinatorActions","abstract":"

    The actions passed to the coordinator.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP15CoordinatorInfoa":{"name":"CoordinatorInfo","abstract":"

    The info passed to the coordinator.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP15makeCoordinator7actions4info0F0QzAA0cdF7ActionsCyxG_AA0cdF4InfoCyxGtF":{"name":"makeCoordinator(actions:info:)","abstract":"

    Creates a new coordinator with the provided actions and info.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP14BackgroundViewQa":{"name":"BackgroundView","abstract":"

    The background view used to draw the background of the content.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP28createReusableBackgroundView5frame0gH0QzSo6CGRectV_tFZ":{"name":"createReusableBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s background.

    ","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP22SelectedBackgroundViewQa":{"name":"SelectedBackgroundView","abstract":"

    The selected background view used to draw the background of the content when it is selected or highlighted.","parent_name":"ItemContent"},"Protocols/ItemContent.html#/s:10ListableUI11ItemContentP36createReusableSelectedBackgroundView5frame0ghI0QzSo6CGRectV_tFZ":{"name":"createReusableSelectedBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s selected background.

    ","parent_name":"ItemContent"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP11anyWasMoved10comparedToSbAA0cD0_p_tF":{"name":"anyWasMoved(comparedTo:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP15anyIsEquivalent2toSbAA0cD0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem_Internal.html#/s:10ListableUI16AnyItem_InternalP015newPresentationD5State4with15updateCallbacks015performsContentK0ypAA0dH12DependenciesV_AA06UpdateK0CSbtF":{"name":"newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"AnyItem_Internal"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10identifierAA0C10IdentifierCvp":{"name":"identifier","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10anyContentypvp":{"name":"anyContent","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP7layoutsAA0D7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP14selectionStyleAA0d9SelectionF0Ovp":{"name":"selectionStyle","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP25insertAndRemoveAnimationsAA0d6InsertfgH0VSgvp":{"name":"insertAndRemoveAnimations","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP12swipeActionsAA05SwipeF13ConfigurationVSgvp":{"name":"swipeActions","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/AnyItem.html#/s:10ListableUI7AnyItemP10reorderingAA10ReorderingVSgvp":{"name":"reordering","abstract":"

    Undocumented

    ","parent_name":"AnyItem"},"Protocols/HeaderFooterLayoutsValue.html#/s:10ListableUI24HeaderFooterLayoutsValueP07defaultF0xvpZ":{"name":"defaultValue","abstract":"

    The default value used when accessing the value, if none is set.

    ","parent_name":"HeaderFooterLayoutsValue"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP5apply2to3for4withyAA0cdE5ViewsVyxG_AA11ApplyReasonOAA0kcdE4InfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP0E4ViewQa":{"name":"ContentView","abstract":"

    The content view used to draw the content.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP014createReusableE4View5frame0eH0QzSo6CGRectV_tFZ":{"name":"createReusableContentView(frame:)","abstract":"

    Create and return a new content view used to render the content.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP14BackgroundViewQa":{"name":"BackgroundView","abstract":"

    The background view used to draw the background of the content.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP28createReusableBackgroundView5frame0hI0QzSo6CGRectV_tFZ":{"name":"createReusableBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s background.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP21PressedBackgroundViewQa":{"name":"PressedBackgroundView","abstract":"

    The selected background view used to draw the background of the content when it is selected or highlighted.","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentP35createReusablePressedBackgroundView5frame0hiJ0QzSo6CGRectV_tFZ":{"name":"createReusablePressedBackgroundView(frame:)","abstract":"

    Create and return a new background view used to render the content’s pressed background.

    ","parent_name":"HeaderFooterContent"},"Protocols/HeaderFooterContent.html#/s:10ListableUI19HeaderFooterContentPAASQRzrlE12isEquivalent2toSbx_tF":{"name":"isEquivalent(to:)","parent_name":"HeaderFooterContent"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP7layoutsAA0dE7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP5apply2to3for4withySo6UIViewC_AA11ApplyReasonOAA0ldE11ContentInfoVtF":{"name":"apply(to:for:with:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP15anyIsEquivalent2toSbAA0cdE0_p_tF":{"name":"anyIsEquivalent(to:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter_Internal.html#/s:10ListableUI24AnyHeaderFooter_InternalP015newPresentationdE5State24performsContentCallbacksypSb_tF":{"name":"newPresentationHeaderFooterState(performsContentCallbacks:)","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter_Internal"},"Protocols/AnyHeaderFooter.html#/s:10ListableUI15AnyHeaderFooterP6sizingAA6SizingOvp":{"name":"sizing","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter"},"Protocols/AnyHeaderFooter.html#/s:10ListableUI15AnyHeaderFooterP7layoutsAA0dE7LayoutsVvp":{"name":"layouts","abstract":"

    Undocumented

    ","parent_name":"AnyHeaderFooter"},"Protocols/AnyHeaderFooter.html":{"name":"AnyHeaderFooter","abstract":"

    Undocumented

    "},"Protocols/AnyHeaderFooter_Internal.html":{"name":"AnyHeaderFooter_Internal","abstract":"

    Undocumented

    "},"Protocols/HeaderFooterContent.html":{"name":"HeaderFooterContent","abstract":"

    A HeaderFooterContent is a type which specifies the content of a header, footer,"},"Protocols/HeaderFooterLayoutsValue.html":{"name":"HeaderFooterLayoutsValue","abstract":"

    The HeaderFooterLayoutsValue protocol provides a default value for the different layouts stored"},"Protocols/AnyItem.html":{"name":"AnyItem","abstract":"

    Undocumented

    "},"Protocols/AnyItem_Internal.html":{"name":"AnyItem_Internal","abstract":"

    Undocumented

    "},"Protocols/ItemContent.html":{"name":"ItemContent","abstract":"

    An ItemContent is a type used to provide the content of an Item"},"Protocols/ItemContentSwipeActionsView.html":{"name":"ItemContentSwipeActionsView","abstract":"

    Conform to this protocol to implement a completely custom swipe action view.

    "},"Protocols/ItemContentCoordinator.html":{"name":"ItemContentCoordinator","abstract":"

    A type which lets you interactively manage the contents of an Item or ItemContent"},"Protocols/ItemLayoutsValue.html":{"name":"ItemLayoutsValue","abstract":"

    The ItemLayoutsValue protocol provides a default value for the different layouts stored"},"Protocols/CollectionViewLayoutDelegate.html":{"name":"CollectionViewLayoutDelegate","abstract":"

    Undocumented

    "},"Protocols/ListLayout.html":{"name":"ListLayout","abstract":"

    Undocumented

    "},"Protocols/AnyLayoutDescriptionConfiguration.html":{"name":"AnyLayoutDescriptionConfiguration","abstract":"

    Undocumented

    "},"Protocols/AnyListLayout.html":{"name":"AnyListLayout","abstract":"

    Undocumented

    "},"Protocols/ListLayoutAppearance.html":{"name":"ListLayoutAppearance","abstract":"

    Undocumented

    "},"Protocols/ListEnvironmentKey.html":{"name":"ListEnvironmentKey","abstract":"

    Defines a value stored in the ListEnvironment of a list.

    "},"Protocols/ListViewSource.html":{"name":"ListViewSource","abstract":"

    Undocumented

    "},"Protocols/LocalizedCollatableItemContent.html":{"name":"LocalizedCollatableItemContent","abstract":"

    If you would like to make your ItemContent work with the LocalizedItemCollator,"},"Protocols/AnyLocalizedCollatableItem.html":{"name":"AnyLocalizedCollatableItem","abstract":"

    Represents an AnyItem which can be collated, via its vended collationString.

    "},"Protocols/SectionInfo.html":{"name":"SectionInfo","abstract":"

    Undocumented

    "},"Protocols/AnySectionInfo.html":{"name":"AnySectionInfo","abstract":"

    Undocumented

    "},"Protocols/SectionLayoutsValue.html":{"name":"SectionLayoutsValue","abstract":"

    The SectionLayoutsValue protocol provides a default value for the different layouts stored"},"Functions.html#/s:10ListableUI13listableFatal_4file4lines5NeverOSSyXK_s12StaticStringVSutF":{"name":"listableFatal(_:file:line:)","abstract":"

    Undocumented

    "},"Functions.html#/s:10ListableUI20listablePrecondition__4file4lineySbyXK_SSyXKs12StaticStringVSutF":{"name":"listablePrecondition(_:_:file:line:)","abstract":"

    Undocumented

    "},"Extensions/Set.html#/s:Sh10ListableUIAA15ScrollAnimationO0D7OptionsORszrlE7defaultShyAEGvpZ":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"Set"},"Extensions/UIRectEdge.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"UIRectEdge"},"Extensions/SectionedDiff.html#/SectionChanges":{"name":"SectionChanges","parent_name":"SectionedDiff"},"Extensions/SectionedDiff.html#/ItemChanges":{"name":"ItemChanges","parent_name":"SectionedDiff"},"Extensions/SectionedDiff.html":{"name":"SectionedDiff"},"Extensions/UIRectEdge.html":{"name":"UIRectEdge"},"Extensions/Set.html":{"name":"Set"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO4leftyA2EmF":{"name":"left","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO6centeryA2EmF":{"name":"center","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO5rightyA2EmF":{"name":"right","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Alignment.html#/s:10ListableUI11CustomWidthO9AlignmentO10originWith06parentD05width7padding12CoreGraphics7CGFloatVAL_AlA17HorizontalPaddingVtF":{"name":"originWith(parentWidth:width:padding:)","abstract":"

    Undocumented

    ","parent_name":"Alignment"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V7paddingAA17HorizontalPaddingVvp":{"name":"padding","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V5widthAA0D10ConstraintOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V9alignmentAC9AlignmentOvp":{"name":"alignment","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V7padding5width9alignmentAeA17HorizontalPaddingV_AA0D10ConstraintOAC9AlignmentOtcfc":{"name":"init(padding:width:alignment:)","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth/Custom.html#/s:10ListableUI11CustomWidthO0C0V8position4withAC8PositionVSo6CGSizeV_tF":{"name":"position(with:)","abstract":"

    Undocumented

    ","parent_name":"Custom"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO7defaultyA2CmF":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO4fillyA2CmF":{"name":"fill","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO6customyA2C0C0VcACmF":{"name":"custom(_:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO5merge4withA2C_tF":{"name":"merge(with:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO8position4with07defaultD0AC8PositionVSo6CGSizeV_12CoreGraphics7CGFloatVtF":{"name":"position(with:defaultWidth:)","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth/Custom.html":{"name":"Custom","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth/Alignment.html":{"name":"Alignment","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/CustomWidth.html#/s:10ListableUI11CustomWidthO8PositionV":{"name":"Position","abstract":"

    Undocumented

    ","parent_name":"CustomWidth"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO02noD0yA2CmF":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO5fixedyAC12CoreGraphics7CGFloatVcACmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO6atMostyAC12CoreGraphics7CGFloatVcACmF":{"name":"atMost(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/WidthConstraint.html#/s:10ListableUI15WidthConstraintO5clampy12CoreGraphics7CGFloatVAGF":{"name":"clamp(_:)","abstract":"

    Undocumented

    ","parent_name":"WidthConstraint"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO7defaultyA2ImF":{"name":"default","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO5fixedyAI12CoreGraphics7CGFloatVcAImF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis/Value.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5ValueO5value4with12CoreGraphics7CGFloatVAN_tF":{"name":"value(with:)","abstract":"

    Undocumented

    ","parent_name":"Value"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO02noD0yA2GmF":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO7atLeastyA2G5ValueOcAGmF":{"name":"atLeast(_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO6atMostyAG12CoreGraphics7CGFloatVcAGmF":{"name":"atMost(_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO6withinyA2G5ValueO_12CoreGraphics7CGFloatVtcAGmF":{"name":"within(_:_:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis/Value.html":{"name":"Value","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint/Axis.html#/s:10ListableUI6SizingO10ConstraintV4AxisO5clamp_4with12CoreGraphics7CGFloatVAL_ALtF":{"name":"clamp(_:with:)","abstract":"

    Undocumented

    ","parent_name":"Axis"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5widthAE4AxisOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV6heightAE4AxisOvp":{"name":"height","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV02noD0AEvpZ":{"name":"noConstraint","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintVyA2E4AxisOcfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5width6heightA2E4AxisO_AItcfc":{"name":"init(width:height:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint.html#/s:10ListableUI6SizingO10ConstraintV5clamp_4withSo6CGSizeVAI_AItF":{"name":"clamp(_:with:)","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing/Constraint/Axis.html":{"name":"Axis","abstract":"

    Undocumented

    ","parent_name":"Constraint"},"Enums/Sizing.html#/s:10ListableUI6SizingO7defaultyA2CmF":{"name":"default","abstract":"

    The default size from the list’s appearance is used. The size is not dynamic at all.

    ","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO5fixedyAC12CoreGraphics7CGFloatV_AGtcACmF":{"name":"fixed(width:height:)","abstract":"

    Fixes the size to the absolute value passed in.

    ","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO8thatFitsyA2C10ConstraintVcACmF":{"name":"thatFits(_:)","abstract":"

    Sizes the item by calling sizeThatFits on its underlying view type.","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO10autolayoutyA2C10ConstraintVcACmF":{"name":"autolayout(_:)","abstract":"

    Sizes the item by calling systemLayoutSizeFitting on its underlying view type.","parent_name":"Sizing"},"Enums/Sizing.html#/s:10ListableUI6SizingO11MeasureInfoV":{"name":"MeasureInfo","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Enums/Sizing/Constraint.html":{"name":"Constraint","abstract":"

    Undocumented

    ","parent_name":"Sizing"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO14curveEaseInOutyA2EmF":{"name":"curveEaseInOut","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO11curveEaseInyA2EmF":{"name":"curveEaseIn","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO12curveEaseOutyA2EmF":{"name":"curveEaseOut","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation/AnimationOptions.html#/s:10ListableUI15ScrollAnimationO0D7OptionsO11curveLinearyA2EmF":{"name":"curveLinear","abstract":"

    Undocumented

    ","parent_name":"AnimationOptions"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO4noneyA2CmF":{"name":"none","abstract":"

    No animation is performed.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO7defaultyA2CmF":{"name":"default","abstract":"

    A default animation is performed. This is the same as .custom().

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO6customyACSd_ShyAC0D7OptionsOGtcACmF":{"name":"custom(duration:options:)","abstract":"

    A custom animation is performed.","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO6springyACSd_So24UISpringTimingParametersCtcACmF":{"name":"spring(duration:timing:)","abstract":"

    Undocumented

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO3and4withACSb_tF":{"name":"and(with:)","abstract":"

    Ands the animation with the provided bool, returning the animation if true, and .none if false.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation.html#/s:10ListableUI15ScrollAnimationO7perform10animations10completionyyyc_ySbctF":{"name":"perform(animations:completion:)","abstract":"

    Performs the provided animations for the ScrollAnimation.

    ","parent_name":"ScrollAnimation"},"Enums/ScrollAnimation/AnimationOptions.html":{"name":"AnimationOptions","abstract":"

    The animations options available for the ScrollAnimation.

    ","parent_name":"ScrollAnimation"},"Enums/ListSizing.html#/s:10ListableUI10ListSizingO10fillParentyA2CmF":{"name":"fillParent","abstract":"

    When using .fillParent, the full available space will be taken up, regardless","parent_name":"ListSizing"},"Enums/ListSizing.html#/s:10ListableUI10ListSizingO14measureContentyA2CmF":{"name":"measureContent","abstract":"

    When using .measureContent, the content will be measured within the provided fitting size","parent_name":"ListSizing"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO8verticalyA2CmF":{"name":"vertical","abstract":"

    A list layout which lays out top to bottom.

    ","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO10horizontalyA2CmF":{"name":"horizontal","abstract":"

    A list layout which lays out left to right (or leading to trailing, depending on implementation).

    ","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXE_xyXEtlF":{"name":"switch(vertical:horizontal:)","abstract":"

    When writing a layout, use this method to return differing values based on","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6switch8vertical10horizontalxxyXK_xyXKtlF":{"name":"switch(vertical:horizontal:)","abstract":"

    When writing a layout, use this method to return differing values based on","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6height3for12CoreGraphics7CGFloatVSo6CGSizeV_tF":{"name":"height(for:)","abstract":"

    .vertical: Returns the height of the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO5width3for12CoreGraphics7CGFloatVSo6CGSizeV_tF":{"name":"width(for:)","abstract":"

    .vertical: Returns the width of the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO5point1x1ySo7CGPointV12CoreGraphics7CGFloatV_AKtF":{"name":"point(x:y:)","abstract":"

    .vertical: Returns a CGPoint made with (x, y).","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4size3forSo6CGSizeVAG_tF":{"name":"size(for:)","abstract":"

    .vertical: Returns the provided size.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4size5width6heightSo6CGSizeV12CoreGraphics7CGFloatV_AKtF":{"name":"size(width:height:)","abstract":"

    .vertical: Returns a CGSize made with (width, height).","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4maxY3for12CoreGraphics7CGFloatVSo6CGRectV_tF":{"name":"maxY(for:)","abstract":"

    .vertical: Returns the maxY of the frame.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO4maxX3for12CoreGraphics7CGFloatVSo6CGRectV_tF":{"name":"maxX(for:)","abstract":"

    .vertical: Returns the maxX of the frame.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO1x3for12CoreGraphics7CGFloatVSo7CGPointV_tF":{"name":"x(for:)","abstract":"

    .vertical: Returns the x of the point.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO1y3for12CoreGraphics7CGFloatVSo7CGPointV_tF":{"name":"y(for:)","abstract":"

    .vertical: Returns the y of the point.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO3top4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF":{"name":"top(with:)","abstract":"

    .vertical: Returns the top of the insets.","parent_name":"LayoutDirection"},"Enums/LayoutDirection.html#/s:10ListableUI15LayoutDirectionO6bottom4with12CoreGraphics7CGFloatVSo12UIEdgeInsetsV_tF":{"name":"bottom(with:)","abstract":"

    .vertical: Returns the bottom of the insets.","parent_name":"LayoutDirection"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO13notSelectableyA2CmF":{"name":"notSelectable","abstract":"

    The item is not selectable at all.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO8tappableyA2CmF":{"name":"tappable","abstract":"

    The item is temporarily selectable. Once the user lifts their finger, the item is deselected.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemSelectionStyle.html#/s:10ListableUI18ItemSelectionStyleO10selectableyACSb_tcACmF":{"name":"selectable(isSelected:)","abstract":"

    The item is persistently selectable. Once the user lifts their finger, the item is maintained.

    ","parent_name":"ItemSelectionStyle"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO6singleyA2CmF":{"name":"single","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO5firstyA2CmF":{"name":"first","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO6middleyA2CmF":{"name":"middle","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/ItemPosition.html#/s:10ListableUI12ItemPositionO4lastyA2CmF":{"name":"last","abstract":"

    Undocumented

    ","parent_name":"ItemPosition"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO6closedyA2CmF":{"name":"closed","abstract":"

    The actions are completely collapsed.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO4openyA2CmF":{"name":"open","abstract":"

    The actions are open to their natural size.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO7swipingyACSb_tcACmF":{"name":"swiping(willPerformAction:)","abstract":"

    The actions are being swiped and the size is affected by the gesture recognizer.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO016willPerformFirstD13AutomaticallyyA2CmF":{"name":"willPerformFirstActionAutomatically","abstract":"

    The actions have been swiped far enough to confirm the first action.

    ","parent_name":"SwipeActionState"},"Enums/SwipeActionState.html#/s:10ListableUI16SwipeActionStateO13expandActionsyA2CmF":{"name":"expandActions","abstract":"

    The actions have been asked to completely expand (typically because the item is being deleted).

    ","parent_name":"SwipeActionState"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO03anyC0ShyACGvpZ":{"name":"anyContent","abstract":"

    If there is any content in the list at all, including headers and footers.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO12sectionsOnlyShyACGvpZ":{"name":"sectionsOnly","abstract":"

    Check if the content in the list is section-driven content, with the","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO10listHeaderyA2CmF":{"name":"listHeader","abstract":"

    If the list has a list-level header.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO10listFooteryA2CmF":{"name":"listFooter","abstract":"

    If the list has a list-level footer.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO16overscrollFooteryA2CmF":{"name":"overscrollFooter","abstract":"

    If the list has an overscroll footer.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO5itemsyA2CmF":{"name":"items","abstract":"

    If the sections in the list contain any items.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO14sectionHeadersyA2CmF":{"name":"sectionHeaders","abstract":"

    If any section in the list has a header.

    ","parent_name":"ContentFilters"},"Enums/ContentFilters.html#/s:10ListableUI14ContentFiltersO14sectionFootersyA2CmF":{"name":"sectionFooters","abstract":"

    If any section in the list has a footer.

    ","parent_name":"ContentFilters"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV11destinationAC0D11DestinationOvp":{"name":"destination","abstract":"

    The item in the list to scroll to when the insertedIdentifier is inserted.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV18insertedIdentifierAA03AnyJ0Cvp":{"name":"insertedIdentifier","abstract":"

    The identifier of the item for which the AutoScrollAction should be performed.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV8positionAA0D8PositionVvp":{"name":"position","abstract":"

    The desired scroll position,

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV9animationAA0D9AnimationOvp":{"name":"animation","abstract":"

    How to animate the change.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV13shouldPerformySbAA04ListD12PositionInfoVcvp":{"name":"shouldPerform","abstract":"

    An additional check you may provide to approve or reject the scroll action.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/OnInsertedItem.html#/s:10ListableUI16AutoScrollActionO14OnInsertedItemV10didPerformyyAA04ListD12PositionInfoVcvp":{"name":"didPerform","abstract":"

    Called when the list performs the insertion.

    ","parent_name":"OnInsertedItem"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO9firstItemyA2EmF":{"name":"firstItem","abstract":"

    Scroll to the first item in the list.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO8lastItemyA2EmF":{"name":"lastItem","abstract":"

    Scroll to the last item in the list.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction/ScrollDestination.html#/s:10ListableUI16AutoScrollActionO0D11DestinationO4itemyAeA13AnyIdentifierCcAEmF":{"name":"item(_:)","abstract":"

    Scroll to the item with the specified identifier.

    ","parent_name":"ScrollDestination"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO4noneyA2CmF":{"name":"none","abstract":"

    The list never automatically scrolls.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO12scrollToItemyA2C010OnInsertedH0V_tcACmF":{"name":"scrollToItem(onInsertOf:)","abstract":"

    Scrolls to the specified item when the list is updated if the item was inserted in this update.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction.html#/s:10ListableUI16AutoScrollActionO8scrollTo_10onInsertOf8position9animation13shouldPerform03didN0A2C0D11DestinationOSg_AA13AnyIdentifierCAA0D8PositionVAA0D9AnimationOSbAA04ListdS4InfoVcyATctFZ":{"name":"scrollTo(_:onInsertOf:position:animation:shouldPerform:didPerform:)","abstract":"

    Scrolls to the specified item when the list is updated if the item was inserted in this update.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction/ScrollDestination.html":{"name":"ScrollDestination","abstract":"

    Where to scroll as a result of an AutoScrollAction.

    ","parent_name":"AutoScrollAction"},"Enums/AutoScrollAction/OnInsertedItem.html":{"name":"OnInsertedItem","abstract":"

    Values used to configure the scrollToItem(onInsertOf:) action.

    ","parent_name":"AutoScrollAction"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO11willDisplayyA2CmF":{"name":"willDisplay","abstract":"

    The view is about to be displayed on screen. Update should be performed with no animation.

    ","parent_name":"ApplyReason"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO10wasUpdatedyA2CmF":{"name":"wasUpdated","abstract":"

    A view that is already visible is being updated.","parent_name":"ApplyReason"},"Enums/ApplyReason.html#/s:10ListableUI11ApplyReasonO13shouldAnimateSbvp":{"name":"shouldAnimate","abstract":"

    If you should use animations while applying the update.","parent_name":"ApplyReason"},"Enums/ApplyReason.html":{"name":"ApplyReason","abstract":"

    Why the Item or HeaderFooter is being asked to apply an update to its presented views.

    "},"Enums/AutoScrollAction.html":{"name":"AutoScrollAction","abstract":"

    Options for auto-scrolling to items when the list is updated.

    "},"Enums/ContentFilters.html":{"name":"ContentFilters","abstract":"

    A filter enum which allows you to query the types of content contained in a Content or Section object.

    "},"Enums/SwipeActionState.html":{"name":"SwipeActionState","abstract":"

    These states dictate the layout of the swipe actions.

    "},"Enums/ItemPosition.html":{"name":"ItemPosition","abstract":"

    Undocumented

    "},"Enums/ItemSelectionStyle.html":{"name":"ItemSelectionStyle","abstract":"

    Controls the selection style and behavior of an item in a list.

    "},"Enums/LayoutDirection.html":{"name":"LayoutDirection","abstract":"

    Describes the given direction / axis that a layout uses when flowing its content.

    "},"Enums/ListSizing.html":{"name":"ListSizing","abstract":"

    Provides the possible options for how to size and measure a list when its measured size is queried"},"Enums/ScrollAnimation.html":{"name":"ScrollAnimation","abstract":"

    Specifies the kind of animation to use when scrolling a list view.

    "},"Enums/Sizing.html":{"name":"Sizing","abstract":"

    Controls how a header, footer, or item in a list view is sized.

    "},"Enums/WidthConstraint.html":{"name":"WidthConstraint","abstract":"

    Undocumented

    "},"Enums/CustomWidth.html":{"name":"CustomWidth","abstract":"

    Undocumented

    "},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC8isMovingSbvp":{"name":"isMoving","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC11beginMovingSbyF":{"name":"beginMoving()","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC5moved4withySo22UIPanGestureRecognizerC_tF":{"name":"moved(with:)","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ReorderingActions.html#/s:10ListableUI17ReorderingActionsC3endyyF":{"name":"end()","abstract":"

    Undocumented

    ","parent_name":"ReorderingActions"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)init":{"name":"init()","abstract":"

    Creates a preview for the given width.

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/s:10ListableUI15ItemPreviewViewC4with5state10appearance4itemAC12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptcfc":{"name":"init(with:state:appearance:item:)","abstract":"

    Creates a preview for the given item and parameters, and then lays out the preview view.

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/s:10ListableUI15ItemPreviewViewC6update4with5state10appearance4itemy12CoreGraphics7CGFloatV_AA0C5StateVAA0cD10AppearanceVAA03AnyC0_ptF":{"name":"update(with:state:appearance:item:)","abstract":"

    Updates the item for the given parameters.","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/ItemPreviewView.html#/c:@M@ListableUI@objc(cs)ItemPreviewView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

    Undocumented

    ","parent_name":"ItemPreviewView"},"Classes/StaticSource/State.html#/s:10ListableUI12StaticSourceC5StateVAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"State"},"Classes/StaticSource/State.html":{"name":"State","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7contentAA7ContentVvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC4withAcA7ContentV_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC4withACyAA7ContentVzXE_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7content4withADyAA0D5StateCyAC0G0VG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/StaticSource.html#/s:10ListableUI12StaticSourceC7content4withAA7ContentVAA0D5StateCyAC0H0VG_tF":{"name":"content(with:)","abstract":"

    Undocumented

    ","parent_name":"StaticSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC7Buildera":{"name":"Builder","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC4withACyxGyAA0D5StateCyxG_AA7ContentVztc_tcfc":{"name":"init(with:)","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/DynamicSource.html#/s:10ListableUI13DynamicSourceC7content4withADyAA0D5StateCyxG_AA7ContentVztF":{"name":"content(with:content:)","abstract":"

    Undocumented

    ","parent_name":"DynamicSource"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC5valuexvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC3setyyyxzXEF":{"name":"set(_:)","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC7initial9didChangeACyxGx_yyctcfc":{"name":"init(initial:didChange:)","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/SourceState.html#/s:10ListableUI11SourceStateC7discardyyF":{"name":"discard()","abstract":"

    Undocumented

    ","parent_name":"SourceState"},"Classes/StateAccessor.html#/s:10ListableUI13StateAccessorC5valuexvp":{"name":"value","abstract":"

    Undocumented

    ","parent_name":"StateAccessor"},"Classes/ListViewController.html#/s:10ListableUI18ListViewControllerC9configure4listyAA0C10PropertiesVz_tF":{"name":"configure(list:)","abstract":"

    Override this method to configure your list how you’d like to.","parent_name":"ListViewController"},"Classes/ListViewController.html#/s:10ListableUI18ListViewControllerC6reload8animatedySb_tF":{"name":"reload(animated:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)initWithNibName:bundle:":{"name":"init(nibName:bundle:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)loadView":{"name":"loadView()","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListViewController.html#/c:@M@ListableUI@objc(cs)ListViewController(im)viewWillAppear:":{"name":"viewWillAppear(_:)","abstract":"

    Undocumented

    ","parent_name":"ListViewController"},"Classes/ListView.html#/s:10ListableUI8ListViewC5frame10appearanceACSo6CGRectV_AA10AppearanceVtcfc":{"name":"init(frame:appearance:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC19debuggingIdentifierSSSgvp":{"name":"debuggingIdentifier","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC10appearanceAA10AppearanceVvp":{"name":"appearance","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC18scrollPositionInfoAA0c6ScrollfG0Vvp":{"name":"scrollPositionInfo","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC6layoutAA17LayoutDescriptionVvp":{"name":"layout","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC3set6layout8animated10completionyAA17LayoutDescriptionV_SbyyctF":{"name":"set(layout:animated:completion:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8behaviorAA8BehaviorVvp":{"name":"behavior","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC21scrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"scrollIndicatorInsets","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC13stateObserverAA0c5StateF0Vvp":{"name":"stateObserver","abstract":"

    A state observer allows you to receive callbacks when varying types","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC16ScrollCompletiona":{"name":"ScrollCompletion","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0M9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the provided item, with the provided positioning.","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0M9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the item with the provided identifier, with the provided positioning.","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToTop(animation:completion:)","abstract":"

    Scrolls to the very top of the list, which includes displaying the list header.

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToLastItem(animation:completion:)","abstract":"

    Scrolls to the last item in the list. If the list contains no items, no action is performed.

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11environmentAA0C11EnvironmentVvp":{"name":"environment","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC7contentAA7ContentVvp":{"name":"content","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC10setContent8animated_ySb_AA0F0VtF":{"name":"setContent(animated:_:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC3set6source7initial8animatedAA13StateAccessorCy0I0QzGx_AKSbtAA0cD6SourceRzlF":{"name":"set(source:initial:animated:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC9configure4withyyAA0C10PropertiesVzXE_tF":{"name":"configure(with:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC9configure4withyAA0C10PropertiesV_tF":{"name":"configure(with:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)frame":{"name":"frame","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)bounds":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(py)backgroundColor":{"name":"backgroundColor","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)didMoveToWindow":{"name":"didMoveToWindow()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)didMoveToSuperview":{"name":"didMoveToSuperview()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/c:@M@ListableUI@objc(cs)ListView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_yAA0C10PropertiesVzXEtFZ":{"name":"contentSize(in:for:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC11contentSize2in3forSo6CGSizeVAH_AA0C10PropertiesVtFZ":{"name":"contentSize(in:for:)","abstract":"

    Undocumented

    ","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC28testing_forceLayoutUpdateNowyyF":{"name":"testing_forceLayoutUpdateNow()","abstract":"

    Call this method to force an immediate, synchronous re-render of the list","parent_name":"ListView"},"Classes/ListView.html#/s:10ListableUI8ListViewC020clearSelectionDuringD10WillAppear9alongside8animatedySo37UIViewControllerTransitionCoordinator_pSg_SbtF":{"name":"clearSelectionDuringViewWillAppear(alongside:animated:)","abstract":"

    A method which provides Behavior.SelectionMode.single‘s clearsSelectionOnViewWillAppear behaviour.","parent_name":"ListView"},"Classes/ListActions/ViewControllerTransitioning.html#/s:10ListableUI11ListActionsC27ViewControllerTransitioningCAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ViewControllerTransitioning"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingCAEycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC16ScrollCompletiona":{"name":"ScrollCompletion","abstract":"

    Undocumented

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA7AnyItem_p_AA14ScrollPositionVAA0N9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the provided item, with the provided positioning.","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC8scrollTo4item8position9animation10completionSbAA13AnyIdentifierC_AA14ScrollPositionVAA0N9AnimationOySbctF":{"name":"scrollTo(item:position:animation:completion:)","abstract":"

    Scrolls to the item with the provided identifier, with the provided positioning.","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC11scrollToTop9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToTop(animation:completion:)","abstract":"

    Scrolls to the very top of the list, which includes displaying the list header.

    ","parent_name":"Scrolling"},"Classes/ListActions/Scrolling.html#/s:10ListableUI11ListActionsC9ScrollingC16scrollToLastItem9animation10completionSbAA15ScrollAnimationO_ySbctF":{"name":"scrollToLastItem(animation:completion:)","abstract":"

    Scrolls to the last item in the list. If the list contains no items, no action is performed.

    ","parent_name":"Scrolling"},"Classes/ListActions.html#/s:10ListableUI11ListActionsC9scrollingAC9ScrollingCvp":{"name":"scrolling","abstract":"

    Actions which allow scrolling to individual items in a list.

    ","parent_name":"ListActions"},"Classes/ListActions.html#/s:10ListableUI11ListActionsC27viewControllerTransitioningAC04ViewfG0Cvp":{"name":"viewControllerTransitioning","abstract":"

    Actions which allow hooking up your list to the view controller transitioning APIs.

    ","parent_name":"ListActions"},"Classes/ListActions.html#/s:10ListableUI11ListActionsCACycfc":{"name":"init()","abstract":"

    Creates and returns an actions object which can be registered with a list view.

    ","parent_name":"ListActions"},"Classes/ListActions/Scrolling.html":{"name":"Scrolling","abstract":"

    Provides access to scrolling actions within a list view.

    ","parent_name":"ListActions"},"Classes/ListActions/ViewControllerTransitioning.html":{"name":"ViewControllerTransitioning","abstract":"

    Provides access to view controller transitioning options in a list.

    ","parent_name":"ListActions"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC11SectionInfoC":{"name":"SectionInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC21SupplementaryItemInfoC":{"name":"SupplementaryItemInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/ListLayoutContent.html#/s:10ListableUI17ListLayoutContentC8ItemInfoC":{"name":"ItemInfo","abstract":"

    Undocumented

    ","parent_name":"ListLayoutContent"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP7actionsAA0cdE7ActionsCy0cD4TypeQzGvp":{"name":"actions","parent_name":"DefaultItemContentCoordinator"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4infoAA0cdE4InfoCy0cD4TypeQzGvp":{"name":"info","parent_name":"DefaultItemContentCoordinator"},"Classes/DefaultItemContentCoordinator.html#/s:10ListableUI22ItemContentCoordinatorP4view0cD4Type_0D4ViewQZSgvp":{"name":"view","parent_name":"DefaultItemContentCoordinator"},"Classes/ItemContentCoordinatorInfo.html#/s:10ListableUI26ItemContentCoordinatorInfoC8originalAA0C0VyxGvp":{"name":"original","abstract":"

    The original state of the item, as passed to the list.","parent_name":"ItemContentCoordinatorInfo"},"Classes/ItemContentCoordinatorInfo.html#/s:10ListableUI26ItemContentCoordinatorInfoC7currentAA0C0VyxGvp":{"name":"current","abstract":"

    The current value of the item, including changes made","parent_name":"ItemContentCoordinatorInfo"},"Classes/ItemContentCoordinatorActions.html#/s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_AA0C0VyxGtF":{"name":"update(animated:_:)","abstract":"

    Updates the item to the provided item.

    ","parent_name":"ItemContentCoordinatorActions"},"Classes/ItemContentCoordinatorActions.html#/s:10ListableUI29ItemContentCoordinatorActionsC6update8animated_ySb_yAA0C0VyxGzXEtF":{"name":"update(animated:_:)","abstract":"

    Allows you to update the item passed into the update closure.

    ","parent_name":"ItemContentCoordinatorActions"},"Classes/__LST_KeyboardObserver_ObjCAccess.html#/c:@M@ListableUI@objc(cs)__LST_KeyboardObserver_ObjCAccess(cm)__setupSharedInstance":{"name":"__setupSharedInstance()","abstract":"

    Undocumented

    ","parent_name":"__LST_KeyboardObserver_ObjCAccess"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC05swipeE5Width12CoreGraphics7CGFloatVvp":{"name":"swipeActionsWidth","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC16didPerformActionACySbc_tcfc":{"name":"init(didPerformAction:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/c:@M@ListableUI@objc(cs)DefaultSwipeActionsView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC5apply7actionsyAA0dE13ConfigurationV_tF":{"name":"apply(actions:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/DefaultSwipeActionsView.html#/s:10ListableUI23DefaultSwipeActionsViewC5apply5stateyAA0D11ActionStateO_tF":{"name":"apply(state:)","abstract":"

    Undocumented

    ","parent_name":"DefaultSwipeActionsView"},"Classes/AnyIdentifier.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"AnyIdentifier"},"Classes/AnyIdentifier.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"AnyIdentifier"},"Classes/AnyIdentifier.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"AnyIdentifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierCACyxGycfc":{"name":"init()","abstract":"

    Identifier which identifies by the type of Represented only.","parent_name":"Identifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierCyACyxGqd__cSHRd__lufc":{"name":"init(_:)","abstract":"

    Creates an identifier which identifies by both Represented, and the value passed to init.

    ","parent_name":"Identifier"},"Classes/Identifier.html#/s:10ListableUI10IdentifierC16debugDescriptionSSvp":{"name":"debugDescription","abstract":"

    Undocumented

    ","parent_name":"Identifier"},"Classes/Identifier.html":{"name":"Identifier","abstract":"

    An Identifier is used to unique items in Listable lists. Sections,"},"Classes/AnyIdentifier.html":{"name":"AnyIdentifier","abstract":"

    A type-erased Identifier used to identify content in a listable list.

    "},"Classes/DefaultSwipeActionsView.html":{"name":"DefaultSwipeActionsView","abstract":"

    Undocumented

    "},"Classes/__LST_KeyboardObserver_ObjCAccess.html":{"name":"__LST_KeyboardObserver_ObjCAccess","abstract":"

    An Objective-C accessible class that lets us set up the shared"},"Classes/ItemContentCoordinatorActions.html":{"name":"ItemContentCoordinatorActions","abstract":"

    The available actions you can perform as a coordinator, which are reported back to the list to manage the item.

    "},"Classes/ItemContentCoordinatorInfo.html":{"name":"ItemContentCoordinatorInfo","abstract":"

    Information about the current and original state of the item.

    "},"Classes/DefaultItemContentCoordinator.html":{"name":"DefaultItemContentCoordinator","abstract":"

    The default ItemContentCoordinator, which performs no actions.

    "},"Classes/ListLayoutContent.html":{"name":"ListLayoutContent","abstract":"

    Undocumented

    "},"Classes/ListActions.html":{"name":"ListActions","abstract":"

    ListActions is an type that you can use to gain access to actions to perform on a List"},"Classes/ListView.html":{"name":"ListView","abstract":"

    Undocumented

    "},"Classes.html#/s:10ListableUI15UpdateCallbacksC":{"name":"UpdateCallbacks","abstract":"

    Undocumented

    "},"Classes/ListViewController.html":{"name":"ListViewController","abstract":"

    A class which provides an easy way to set up and display a ListView,"},"Classes/StateAccessor.html":{"name":"StateAccessor","abstract":"

    Undocumented

    "},"Classes/SourceState.html":{"name":"SourceState","abstract":"

    Undocumented

    "},"Classes/DynamicSource.html":{"name":"DynamicSource","abstract":"

    Undocumented

    "},"Classes/StaticSource.html":{"name":"StaticSource","abstract":"

    Undocumented

    "},"Classes/ItemPreviewView.html":{"name":"ItemPreviewView","abstract":"

    A view you can use to test the various possible states that your ItemContent can be in.

    "},"Classes/ReorderingActions.html":{"name":"ReorderingActions","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Functions.html":{"name":"Functions","abstract":"

    The following functions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file diff --git a/docs/Listable/undocumented.json b/docs/Listable/undocumented.json index f12380ecb..b8868fb57 100644 --- a/docs/Listable/undocumented.json +++ b/docs/Listable/undocumented.json @@ -1,3470 +1,3603 @@ { "warnings": [ { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Behavior.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Behavior.swift", "line": 119, "symbol": "Behavior.Underflow", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Behavior.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Behavior.swift", "line": 121, "symbol": "Behavior.Underflow.alwaysBounce", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Behavior.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Behavior.swift", "line": 122, "symbol": "Behavior.Underflow.alignment", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Behavior.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Behavior.swift", "line": 124, "symbol": "Behavior.Underflow.init(alwaysBounce:alignment:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Behavior.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Behavior.swift", "line": 130, "symbol": "Behavior.Underflow.Alignment", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Behavior.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Behavior.swift", "line": 132, "symbol": "Behavior.Underflow.Alignment.top", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Behavior.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Behavior.swift", "line": 133, "symbol": "Behavior.Underflow.Alignment.center", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Behavior.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Behavior.swift", "line": 134, "symbol": "Behavior.Underflow.Alignment.bottom", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Color.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Color.swift", "line": 20, "symbol": "Color.init(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Content.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Content.swift", "line": 10, "symbol": "Content", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Content.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Content.swift", "line": 84, "symbol": "Content.Build", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/EmbeddedList.swift", - "line": 60, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/EmbeddedList.swift", + "line": 64, "symbol": "EmbeddedList.properties", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/EmbeddedList.swift", - "line": 61, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/EmbeddedList.swift", + "line": 65, "symbol": "EmbeddedList.contentIdentifier", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/EmbeddedList.swift", - "line": 67, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/EmbeddedList.swift", + "line": 71, "symbol": "EmbeddedList.init(identifier:build:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", "line": 11, "symbol": "AnyHeaderFooter", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", "line": 13, "symbol": "AnyHeaderFooter.sizing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", "line": 14, - "symbol": "AnyHeaderFooter.layout", + "symbol": "AnyHeaderFooter.layouts", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", "line": 18, "symbol": "AnyHeaderFooter_Internal", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", "line": 20, - "symbol": "AnyHeaderFooter_Internal.layout", + "symbol": "AnyHeaderFooter_Internal.layouts", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", "line": 22, "symbol": "AnyHeaderFooter_Internal.apply(to:for:with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", "line": 28, "symbol": "AnyHeaderFooter_Internal.anyIsEquivalent(to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/AnyHeaderFooter.swift", "line": 30, "symbol": "AnyHeaderFooter_Internal.newPresentationHeaderFooterState(performsContentCallbacks:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 9, "symbol": "Header", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 10, "symbol": "Footer", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 13, "symbol": "HeaderFooter", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 15, "symbol": "HeaderFooter.content", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 17, "symbol": "HeaderFooter.sizing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 18, - "symbol": "HeaderFooter.layout", + "symbol": "HeaderFooter.layouts", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 20, "symbol": "HeaderFooter.OnTap", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 21, "symbol": "HeaderFooter.onTap", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 23, "symbol": "HeaderFooter.debuggingIdentifier", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 31, "symbol": "HeaderFooter.Build", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 33, "symbol": "HeaderFooter.init(_:build:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 42, - "symbol": "HeaderFooter.init(_:sizing:layout:onTap:)", + "symbol": "HeaderFooter.init(_:sizing:layouts:onTap:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 62, "symbol": "HeaderFooter.apply(to:for:with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 82, "symbol": "HeaderFooter.anyIsEquivalent(to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooter.swift", "line": 91, "symbol": "HeaderFooter.newPresentationHeaderFooterState(performsContentCallbacks:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", "line": 9, "symbol": "HeaderContent", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", "line": 10, "symbol": "FooterContent", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", "line": 51, "symbol": "HeaderFooterContent.apply(to:for:with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", "line": 61, "symbol": "HeaderFooterContent.isEquivalent(to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/HeaderFooter/HeaderFooterContent.swift", "line": 159, "symbol": "HeaderFooterContent.isEquivalent(to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooterLayout.swift", - "line": 11, - "symbol": "HeaderFooterLayout", - "symbol_kind": "source.lang.swift.decl.struct", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooterLayout.swift", - "line": 13, - "symbol": "HeaderFooterLayout.width", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/HeaderFooter/HeaderFooterLayout.swift", - "line": 15, - "symbol": "HeaderFooterLayout.init(width:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Identifier.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Identifier.swift", "line": 56, "symbol": "Identifier.debugDescription", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/Assertions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/Assertions.swift", "line": 11, "symbol": "listableFatal(_:file:line:)", "symbol_kind": "source.lang.swift.decl.function.free", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/Assertions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/Assertions.swift", "line": 25, "symbol": "listablePrecondition(_:_:file:line:)", "symbol_kind": "source.lang.swift.decl.function.free", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/DefaultSwipeView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/DefaultSwipeView.swift", "line": 12, "symbol": "DefaultSwipeActionsView", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/DefaultSwipeView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/DefaultSwipeView.swift", "line": 20, "symbol": "DefaultSwipeActionsView.swipeActionsWidth", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/DefaultSwipeView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/DefaultSwipeView.swift", "line": 26, "symbol": "DefaultSwipeActionsView.init(didPerformAction:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/DefaultSwipeView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/DefaultSwipeView.swift", "line": 36, "symbol": "DefaultSwipeActionsView.layoutSubviews()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/DefaultSwipeView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/DefaultSwipeView.swift", "line": 89, "symbol": "DefaultSwipeActionsView.apply(actions:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/DefaultSwipeView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/DefaultSwipeView.swift", "line": 111, "symbol": "DefaultSwipeActionsView.apply(state:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", - "line": 275, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", + "line": 323, "symbol": "ArrayDiff.Added", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", - "line": 276, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", + "line": 324, "symbol": "ArrayDiff.Removed", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", - "line": 277, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", + "line": 325, "symbol": "ArrayDiff.Moved", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", - "line": 278, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", + "line": 326, "symbol": "ArrayDiff.Updated", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", - "line": 279, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/Diff/ArrayDiff.swift", + "line": 327, "symbol": "ArrayDiff.NoChange", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/KeyboardObserver/KeyboardObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/KeyboardObserver/KeyboardObserver.swift", "line": 273, "symbol": "__LST_KeyboardObserver_ObjCAccess.__setupSharedInstance()", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Internal/Presentation State/PresentationState.ItemState.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Internal/Presentation State/PresentationState.ItemState.swift", "line": 67, "symbol": "ItemStateDependencies", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", "line": 11, "symbol": "AnyItem", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", "line": 13, "symbol": "AnyItem.identifier", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", "line": 15, "symbol": "AnyItem.anyContent", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", "line": 17, "symbol": "AnyItem.sizing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", - "line": 18, - "symbol": "AnyItem.layout", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", + "line": 19, + "symbol": "AnyItem.layouts", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", - "line": 19, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", + "line": 21, "symbol": "AnyItem.selectionStyle", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", - "line": 20, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", + "line": 22, "symbol": "AnyItem.insertAndRemoveAnimations", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", - "line": 21, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", + "line": 23, "symbol": "AnyItem.swipeActions", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", - "line": 23, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", + "line": 25, "symbol": "AnyItem.reordering", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", - "line": 27, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", + "line": 29, "symbol": "AnyItem_Internal", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", - "line": 29, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", + "line": 31, "symbol": "AnyItem_Internal.anyWasMoved(comparedTo:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", - "line": 30, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", + "line": 32, "symbol": "AnyItem_Internal.anyIsEquivalent(to:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/AnyItem.swift", - "line": 32, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/AnyItem.swift", + "line": 34, "symbol": "AnyItem_Internal.newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/DefaultItemProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/DefaultItemProperties.swift", "line": 22, "symbol": "DefaultItemProperties.sizing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/DefaultItemProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/DefaultItemProperties.swift", "line": 23, - "symbol": "DefaultItemProperties.layout", + "symbol": "DefaultItemProperties.layouts", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/DefaultItemProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/DefaultItemProperties.swift", "line": 25, "symbol": "DefaultItemProperties.selectionStyle", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/DefaultItemProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/DefaultItemProperties.swift", "line": 27, "symbol": "DefaultItemProperties.insertAndRemoveAnimations", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/DefaultItemProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/DefaultItemProperties.swift", "line": 29, "symbol": "DefaultItemProperties.swipeActions", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/DefaultItemProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/DefaultItemProperties.swift", "line": 31, - "symbol": "DefaultItemProperties.init(sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:)", + "symbol": "DefaultItemProperties.init(sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 16, - "symbol": "Item.OnDisplay.Callback", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 9, + "symbol": "Item", + "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 18, - "symbol": "Item.OnDisplay.item", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 9, + "symbol": "Item", + "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 20, - "symbol": "Item.OnDisplay.isFirstDisplay", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 11, + "symbol": "Item", + "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 26, - "symbol": "Item.OnEndDisplay.Callback", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 11, + "symbol": "Item.identifier", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 28, - "symbol": "Item.OnEndDisplay.item", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 13, + "symbol": "Item.content", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 30, - "symbol": "Item.OnEndDisplay.isFirstEndDisplay", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 15, + "symbol": "Item.sizing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 36, - "symbol": "Item.OnSelect.Callback", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 16, + "symbol": "Item.layouts", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 38, - "symbol": "Item.OnSelect.item", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 18, + "symbol": "Item.selectionStyle", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 44, - "symbol": "Item.OnDeselect.Callback", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 20, + "symbol": "Item.insertAndRemoveAnimations", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 46, - "symbol": "Item.OnDeselect.item", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 22, + "symbol": "Item.swipeActions", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 49, - "symbol": "Item.OnInsert", - "symbol_kind": "source.lang.swift.decl.struct", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 24, + "symbol": "Item.reordering", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 51, - "symbol": "Item.OnInsert.Callback", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 26, + "symbol": "Item.onDisplay", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 53, - "symbol": "Item.OnInsert.item", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 27, + "symbol": "Item.onEndDisplay", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 56, - "symbol": "Item.OnRemove", - "symbol_kind": "source.lang.swift.decl.struct", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 29, + "symbol": "Item.onSelect", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 58, - "symbol": "Item.OnRemove.Callback", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 30, + "symbol": "Item.onDeselect", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 60, - "symbol": "Item.OnRemove.item", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 32, + "symbol": "Item.onInsert", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 63, - "symbol": "Item.OnMove", - "symbol_kind": "source.lang.swift.decl.struct", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 33, + "symbol": "Item.onRemove", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 65, - "symbol": "Item.OnMove.Callback", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 34, + "symbol": "Item.onMove", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 67, - "symbol": "Item.OnMove.old", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 35, + "symbol": "Item.onUpdate", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 68, - "symbol": "Item.OnMove.new", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 39, + "symbol": "Item.debuggingIdentifier", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 71, - "symbol": "Item.OnUpdate", - "symbol_kind": "source.lang.swift.decl.struct", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 45, + "symbol": "Item.Build", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 73, - "symbol": "Item.OnUpdate.Callback", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 47, + "symbol": "Item.init(_:build:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 75, - "symbol": "Item.OnUpdate.old", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 56, + "symbol": "Item.init(_:sizing:layouts:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item+Callbacks.swift", - "line": 76, - "symbol": "Item.OnUpdate.new", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 135, + "symbol": "Item.anyContent", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 9, - "symbol": "Item", - "symbol_kind": "source.lang.swift.decl.extension", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 141, + "symbol": "Item.anyIsEquivalent(to:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 9, - "symbol": "Item", - "symbol_kind": "source.lang.swift.decl.struct", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 150, + "symbol": "Item.anyWasMoved(comparedTo:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 11, - "symbol": "Item", - "symbol_kind": "source.lang.swift.decl.extension", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 159, + "symbol": "Item.newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 11, - "symbol": "Item.identifier", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Item.swift", + "line": 209, + "symbol": "Item", + "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 13, - "symbol": "Item.content", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 16, + "symbol": "Item.OnDisplay.Callback", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 15, - "symbol": "Item.sizing", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 18, + "symbol": "Item.OnDisplay.item", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 16, - "symbol": "Item.layout", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 20, + "symbol": "Item.OnDisplay.isFirstDisplay", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 18, - "symbol": "Item.selectionStyle", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 26, + "symbol": "Item.OnEndDisplay.Callback", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 20, - "symbol": "Item.insertAndRemoveAnimations", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 28, + "symbol": "Item.OnEndDisplay.item", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 22, - "symbol": "Item.swipeActions", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 30, + "symbol": "Item.OnEndDisplay.isFirstEndDisplay", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 24, - "symbol": "Item.reordering", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 36, + "symbol": "Item.OnSelect.Callback", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 26, - "symbol": "Item.onDisplay", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 38, + "symbol": "Item.OnSelect.item", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 27, - "symbol": "Item.onEndDisplay", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 44, + "symbol": "Item.OnDeselect.Callback", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 29, - "symbol": "Item.onSelect", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 46, + "symbol": "Item.OnDeselect.item", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 30, - "symbol": "Item.onDeselect", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 49, + "symbol": "Item.OnInsert", + "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 32, - "symbol": "Item.onInsert", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 51, + "symbol": "Item.OnInsert.Callback", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 33, - "symbol": "Item.onRemove", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 53, + "symbol": "Item.OnInsert.item", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 34, - "symbol": "Item.onMove", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 56, + "symbol": "Item.OnRemove", + "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 35, - "symbol": "Item.onUpdate", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 58, + "symbol": "Item.OnRemove.Callback", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 39, - "symbol": "Item.debuggingIdentifier", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 60, + "symbol": "Item.OnRemove.item", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 45, - "symbol": "Item.Build", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 63, + "symbol": "Item.OnMove", + "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 47, - "symbol": "Item.init(_:build:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 65, + "symbol": "Item.OnMove.Callback", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 56, - "symbol": "Item.init(_:sizing:layout:selectionStyle:insertAndRemoveAnimations:swipeActions:reordering:onDisplay:onEndDisplay:onSelect:onDeselect:onInsert:onRemove:onMove:onUpdate:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 67, + "symbol": "Item.OnMove.old", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 135, - "symbol": "Item.anyContent", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 68, + "symbol": "Item.OnMove.new", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 141, - "symbol": "Item.anyIsEquivalent(to:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 71, + "symbol": "Item.OnUpdate", + "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 150, - "symbol": "Item.anyWasMoved(comparedTo:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 73, + "symbol": "Item.OnUpdate.Callback", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 159, - "symbol": "Item.newPresentationItemState(with:updateCallbacks:performsContentCallbacks:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 75, + "symbol": "Item.OnUpdate.old", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Item.swift", - "line": 209, - "symbol": "Item", - "symbol_kind": "source.lang.swift.decl.extension", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemCallbacks.swift", + "line": 76, + "symbol": "Item.OnUpdate.new", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemContent.swift", "line": 313, "symbol": "ItemContentSwipeActionsView.swipeActionsWidth", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemContent.swift", "line": 315, "symbol": "ItemContentSwipeActionsView.init(didPerformAction:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemContent.swift", "line": 317, "symbol": "ItemContentSwipeActionsView.apply(actions:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemContent.swift", "line": 319, "symbol": "ItemContentSwipeActionsView.apply(state:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 11, "symbol": "ItemInsertAndRemoveAnimations", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 13, "symbol": "ItemInsertAndRemoveAnimations.Prepare", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 15, "symbol": "ItemInsertAndRemoveAnimations.onInsert", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 16, "symbol": "ItemInsertAndRemoveAnimations.onRemoval", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 18, "symbol": "ItemInsertAndRemoveAnimations.init(onInsert:onRemoval:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 26, "symbol": "ItemInsertAndRemoveAnimations.init(attributes:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 32, "symbol": "ItemInsertAndRemoveAnimations.Attributes", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 34, "symbol": "ItemInsertAndRemoveAnimations.Attributes.bounds", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 35, "symbol": "ItemInsertAndRemoveAnimations.Attributes.center", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 37, "symbol": "ItemInsertAndRemoveAnimations.Attributes.transform", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 38, "symbol": "ItemInsertAndRemoveAnimations.Attributes.transform3D", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 40, "symbol": "ItemInsertAndRemoveAnimations.Attributes.alpha", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 42, "symbol": "ItemInsertAndRemoveAnimations.Attributes.zIndex", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 44, "symbol": "ItemInsertAndRemoveAnimations.Attributes.frame", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 96, "symbol": "ItemInsertAndRemoveAnimations", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 98, "symbol": "ItemInsertAndRemoveAnimations.fade", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 109, "symbol": "ItemInsertAndRemoveAnimations.right", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 122, "symbol": "ItemInsertAndRemoveAnimations.left", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 135, "symbol": "ItemInsertAndRemoveAnimations.top", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 148, "symbol": "ItemInsertAndRemoveAnimations.bottom", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 161, "symbol": "ItemInsertAndRemoveAnimations.scaleDown", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemInsertAndRemoveAnimations.swift", "line": 174, "symbol": "ItemInsertAndRemoveAnimations.scaleUp", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemLayout.swift", - "line": 11, - "symbol": "ItemLayout", - "symbol_kind": "source.lang.swift.decl.struct", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemLayout.swift", - "line": 13, - "symbol": "ItemLayout.itemSpacing", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemLayout.swift", - "line": 14, - "symbol": "ItemLayout.itemToSectionFooterSpacing", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemLayout.swift", - "line": 16, - "symbol": "ItemLayout.width", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemLayout.swift", - "line": 18, - "symbol": "ItemLayout.init(itemSpacing:itemToSectionFooterSpacing:width:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemPosition.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemPosition.swift", "line": 11, "symbol": "ItemPosition", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemPosition.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemPosition.swift", "line": 13, "symbol": "ItemPosition.single", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemPosition.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemPosition.swift", "line": 15, "symbol": "ItemPosition.first", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemPosition.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemPosition.swift", "line": 16, "symbol": "ItemPosition.middle", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemPosition.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemPosition.swift", "line": 17, "symbol": "ItemPosition.last", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemState.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemState.swift", "line": 11, "symbol": "ItemState", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemState.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemState.swift", "line": 13, "symbol": "ItemState.init(isSelected:isHighlighted:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/ItemState.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/ItemState.swift", "line": 19, "symbol": "ItemState.init(cell:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 11, "symbol": "Reordering", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 13, "symbol": "Reordering.sections", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 15, "symbol": "Reordering.CanReorder", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 16, "symbol": "Reordering.canReorder", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 18, "symbol": "Reordering.DidReorder", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 19, "symbol": "Reordering.didReorder", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 21, "symbol": "Reordering.init(sections:canReorder:didReorder:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 31, "symbol": "Reordering.Sections", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 33, "symbol": "Reordering.Sections.same", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 36, "symbol": "Reordering.Result", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 38, "symbol": "Reordering.Result.fromSection", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 39, "symbol": "Reordering.Result.fromIndexPath", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 41, "symbol": "Reordering.Result.toSection", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Item/Reordering.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Item/Reordering.swift", "line": 42, "symbol": "Reordering.Result.toIndexPath", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/CollectionViewLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/CollectionViewLayout.swift", "line": 527, "symbol": "CollectionViewLayoutDelegate", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/CollectionViewLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/CollectionViewLayout.swift", "line": 529, "symbol": "CollectionViewLayoutDelegate.listViewLayoutUpdatedItemPositions(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/CollectionViewLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/CollectionViewLayout.swift", "line": 531, "symbol": "CollectionViewLayoutDelegate.listLayoutContent(defaults:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 12, - "symbol": "LayoutDescription.grid_experimental(_:)", + "symbol": "LayoutDescription.experimental_grid(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 19, "symbol": "GridAppearance", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 21, "symbol": "GridAppearance.sizing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 22, "symbol": "GridAppearance.layout", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 24, "symbol": "GridAppearance.direction", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 28, "symbol": "GridAppearance.stickySectionHeaders", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 30, "symbol": "GridAppearance.default", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 34, "symbol": "GridAppearance.init(stickySectionHeaders:sizing:layout:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 44, "symbol": "GridAppearance.Sizing", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 46, "symbol": "GridAppearance.Sizing.itemSize", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 48, "symbol": "GridAppearance.Sizing.ItemSize", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 49, "symbol": "GridAppearance.Sizing.ItemSize.fixed(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 52, "symbol": "GridAppearance.Sizing.sectionHeaderHeight", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 53, "symbol": "GridAppearance.Sizing.sectionFooterHeight", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 55, "symbol": "GridAppearance.Sizing.listHeaderHeight", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 56, "symbol": "GridAppearance.Sizing.listFooterHeight", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 57, "symbol": "GridAppearance.Sizing.overscrollFooterHeight", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 59, "symbol": "GridAppearance.Sizing.init(itemSize:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 76, "symbol": "GridAppearance.Sizing.set(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 85, "symbol": "GridAppearance.Layout", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 87, "symbol": "GridAppearance.Layout.padding", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 88, "symbol": "GridAppearance.Layout.width", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 90, "symbol": "GridAppearance.Layout.interSectionSpacingWithNoFooter", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 91, "symbol": "GridAppearance.Layout.interSectionSpacingWithFooter", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 93, "symbol": "GridAppearance.Layout.sectionHeaderBottomSpacing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", "line": 94, "symbol": "GridAppearance.Layout.itemToSectionFooterSpacing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", - "line": 96, - "symbol": "GridAppearance.Layout.init(padding:width:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemToSectionFooterSpacing:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 96, + "symbol": "GridAppearance.Layout.init(padding:width:interSectionSpacingWithNoFooter:interSectionSpacingWithFooter:sectionHeaderBottomSpacing:itemToSectionFooterSpacing:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 115, + "symbol": "GridAppearance.Layout.set(with:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 136, + "symbol": "GridAppearance", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 138, + "symbol": "GridAppearance.ItemLayout", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 144, + "symbol": "GridAppearance.ItemLayout.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 150, + "symbol": "GridAppearance.HeaderFooterLayout", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 152, + "symbol": "GridAppearance.HeaderFooterLayout.width", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Grid/GridListLayout.swift", - "line": 115, - "symbol": "GridAppearance.Layout.set(with:)", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 158, + "symbol": "GridAppearance.HeaderFooterLayout.init(width:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/List/DefaultListLayout.swift", - "line": 13, - "symbol": "LayoutDescription.list(_:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 166, + "symbol": "GridAppearance.SectionLayout", + "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/List/DefaultListLayout.swift", - "line": 107, - "symbol": "ListAppearance.direction", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 168, + "symbol": "GridAppearance.SectionLayout.width", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/List/DefaultListLayout.swift", - "line": 111, - "symbol": "ListAppearance.stickySectionHeaders", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 174, + "symbol": "GridAppearance.SectionLayout.init(width:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/List/DefaultListLayout.swift", - "line": 119, - "symbol": "ListAppearance.default", - "symbol_kind": "source.lang.swift.decl.var.static", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 184, + "symbol": "ItemLayouts.grid", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/List/DefaultListLayout.swift", - "line": 161, - "symbol": "ListAppearance.Sizing.init(itemHeight:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:itemPositionGroupingHeight:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 192, + "symbol": "HeaderFooterLayouts.grid", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/List/DefaultListLayout.swift", - "line": 180, - "symbol": "ListAppearance.Sizing.set(with:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Grid/GridListLayout.swift", + "line": 199, + "symbol": "SectionLayouts.grid", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", "line": 140, "symbol": "AnyLayoutDescriptionConfiguration", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", "line": 142, "symbol": "AnyLayoutDescriptionConfiguration.createEmptyLayout(appearance:behavior:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", "line": 147, "symbol": "AnyLayoutDescriptionConfiguration.createPopulatedLayout(appearance:behavior:delegate:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", "line": 153, "symbol": "AnyLayoutDescriptionConfiguration.shouldRebuild(layout:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/LayoutDescription.swift", "line": 155, "symbol": "AnyLayoutDescriptionConfiguration.isSameLayoutType(as:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 11, "symbol": "ListLayout", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 13, "symbol": "ListLayout.LayoutAppearance", "symbol_kind": "source.lang.swift.decl.associatedtype", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 15, "symbol": "ListLayout.defaults", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 17, "symbol": "ListLayout.layoutAppearance", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 19, "symbol": "ListLayout.init(layoutAppearance:appearance:behavior:content:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 28, "symbol": "ListLayout", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 30, "symbol": "ListLayout.direction", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 34, "symbol": "ListLayout.stickySectionHeaders", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 40, "symbol": "AnyListLayout", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 46, "symbol": "AnyListLayout.appearance", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 47, "symbol": "AnyListLayout.behavior", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 49, "symbol": "AnyListLayout.content", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 51, "symbol": "AnyListLayout.scrollViewProperties", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 53, "symbol": "AnyListLayout.direction", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 55, "symbol": "AnyListLayout.stickySectionHeaders", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 56, "symbol": "ListLayout", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 61, "symbol": "AnyListLayout.updateLayout(in:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 63, "symbol": "AnyListLayout.layout(delegate:in:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 68, "symbol": "AnyListLayout.setZIndexes()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 72, "symbol": "AnyListLayout", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 74, "symbol": "AnyListLayout.setZIndexes()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 94, "symbol": "AnyListLayout", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 96, "symbol": "AnyListLayout.visibleContentFrame(for:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 108, "symbol": "AnyListLayout", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 110, "symbol": "AnyListLayout.positionStickySectionHeadersIfNeeded(in:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 137, "symbol": "AnyListLayout.updateOverscrollFooterPosition(in:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayout.swift", "line": 159, "symbol": "AnyListLayout.adjustPositionsForLayoutUnderflow(in:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutAppearance.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutAppearance.swift", "line": 11, "symbol": "ListLayoutAppearance", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutAppearance.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutAppearance.swift", "line": 13, "symbol": "ListLayoutAppearance.default", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutAppearance.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutAppearance.swift", "line": 15, "symbol": "ListLayoutAppearance.direction", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutAppearance.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutAppearance.swift", "line": 17, "symbol": "ListLayoutAppearance.stickySectionHeaders", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutAttributes.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutAttributes.swift", "line": 11, "symbol": "ListLayoutAttributes", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutAttributes.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutAttributes.swift", "line": 21, "symbol": "ListLayoutAttributes.Section", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutAttributes.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutAttributes.swift", "line": 29, "symbol": "ListLayoutAttributes.Supplementary", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutAttributes.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutAttributes.swift", "line": 33, "symbol": "ListLayoutAttributes.Item", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", "line": 11, "symbol": "ListLayoutContent", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", "line": 236, "symbol": "ListLayoutContent", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", "line": 238, "symbol": "ListLayoutContent.SectionInfo", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", - "line": 304, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", + "line": 299, "symbol": "ListLayoutContent.SupplementaryItemInfo", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", - "line": 373, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutContent.swift", + "line": 368, "symbol": "ListLayoutContent.ItemInfo", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutDefaults.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutDefaults.swift", "line": 11, "symbol": "ListLayoutDefaults", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutDefaults.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutDefaults.swift", "line": 13, "symbol": "ListLayoutDefaults.itemInsertAndRemoveAnimations", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutDefaults.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutDefaults.swift", "line": 15, "symbol": "ListLayoutDefaults.init(itemInsertAndRemoveAnimations:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 11, "symbol": "ListLayoutScrollViewProperties", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 13, "symbol": "ListLayoutScrollViewProperties.isPagingEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 15, "symbol": "ListLayoutScrollViewProperties.contentInsetAdjustmentBehavior", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 17, "symbol": "ListLayoutScrollViewProperties.allowsBounceVertical", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 18, "symbol": "ListLayoutScrollViewProperties.allowsBounceHorizontal", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 20, "symbol": "ListLayoutScrollViewProperties.allowsHorizontalScrollIndicator", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 21, "symbol": "ListLayoutScrollViewProperties.allowsVerticalScrollIndicator", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 23, "symbol": "ListLayoutScrollViewProperties.init(isPagingEnabled:contentInsetAdjustmentBehavior:allowsBounceVertical:allowsBounceHorizontal:allowsVerticalScrollIndicator:allowsHorizontalScrollIndicator:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 84, "symbol": "ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 85, "symbol": "ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.automatic", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 86, "symbol": "ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.scrollableAxes", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 87, "symbol": "ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.never", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutScrollViewProperties.swift", "line": 88, "symbol": "ListLayoutScrollViewProperties.ContentInsetAdjustmentBehavior.always", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 11, "symbol": "ListLayoutPoint", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 13, "symbol": "ListLayoutPoint.x", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 14, "symbol": "ListLayoutPoint.y", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 16, "symbol": "ListLayoutPoint.rotates", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 18, "symbol": "ListLayoutPoint.init(x:y:rotates:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 25, "symbol": "ListLayoutPoint.CGPointValue(for:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 35, "symbol": "ListLayoutSize", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 37, "symbol": "ListLayoutSize.width", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 38, "symbol": "ListLayoutSize.height", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 40, "symbol": "ListLayoutSize.rotates", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 42, "symbol": "ListLayoutSize.init(width:height:rotates:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/ListLayout/ListLayoutValues.swift", "line": 48, "symbol": "ListLayoutSize.CGPointValue(for:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Paged/PagedListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Paged/PagedListLayout.swift", "line": 11, "symbol": "LayoutDescription.paged(_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Paged/PagedListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Paged/PagedListLayout.swift", "line": 54, "symbol": "PagedAppearance.default", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Paged/PagedListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Paged/PagedListLayout.swift", "line": 61, "symbol": "PagedAppearance.stickySectionHeaders", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Layout/Paged/PagedListLayout.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Paged/PagedListLayout.swift", "line": 72, "symbol": "PagedAppearance.init(direction:showsScrollIndicators:itemInsets:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListActions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 13, + "symbol": "LayoutDescription.table(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 107, + "symbol": "TableAppearance.direction", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 111, + "symbol": "TableAppearance.stickySectionHeaders", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 119, + "symbol": "TableAppearance.default", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 138, + "symbol": "TableAppearance.ItemLayout", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 140, + "symbol": "TableAppearance.ItemLayout.itemSpacing", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 141, + "symbol": "TableAppearance.ItemLayout.itemToSectionFooterSpacing", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 143, + "symbol": "TableAppearance.ItemLayout.width", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 145, + "symbol": "TableAppearance.ItemLayout.init(itemSpacing:itemToSectionFooterSpacing:width:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 162, + "symbol": "TableAppearance.HeaderFooterLayout", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 164, + "symbol": "TableAppearance.HeaderFooterLayout.width", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 166, + "symbol": "TableAppearance.HeaderFooterLayout.init(width:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 177, + "symbol": "TableAppearance.SectionLayout", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 179, + "symbol": "TableAppearance.SectionLayout.width", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 184, + "symbol": "TableAppearance.SectionLayout.columns", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 186, + "symbol": "TableAppearance.SectionLayout.init(width:customInterSectionSpacing:columns:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 201, + "symbol": "TableAppearance.SectionLayout.Columns", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 203, + "symbol": "TableAppearance.SectionLayout.Columns.count", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 204, + "symbol": "TableAppearance.SectionLayout.Columns.spacing", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 206, + "symbol": "TableAppearance.SectionLayout.Columns.one", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 210, + "symbol": "TableAppearance.SectionLayout.Columns.init(count:spacing:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 257, + "symbol": "TableAppearance.Sizing.init(itemHeight:sectionHeaderHeight:sectionFooterHeight:listHeaderHeight:listFooterHeight:overscrollFooterHeight:itemPositionGroupingHeight:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Layout/Table/TableListLayout.swift", + "line": 276, + "symbol": "TableAppearance.Sizing.set(with:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListActions.swift", "line": 82, "symbol": "ListActions.Scrolling.init()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListActions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListActions.swift", "line": 86, "symbol": "ListActions.Scrolling.ScrollCompletion", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListActions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListActions.swift", "line": 175, "symbol": "ListActions.ViewControllerTransitioning.init()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListProperties.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListProperties.swift", "line": 151, "symbol": "ListProperties.Build", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 53, "symbol": "ListStateObserver.OnDidScroll", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 71, "symbol": "ListStateObserver.OnContentUpdated", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 89, "symbol": "ListStateObserver.OnVisibilityChanged", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 104, "symbol": "ListStateObserver.OnFrameChanged", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 118, "symbol": "ListStateObserver.OnSelectionChanged", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 161, "symbol": "ListStateObserver.DidScroll.actions", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 162, "symbol": "ListStateObserver.DidScroll.positionInfo", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 168, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 169, "symbol": "ListStateObserver.ContentUpdated.hadChanges", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 170, + "symbol": "ListStateObserver.ContentUpdated.insertionsAndRemovals", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 172, "symbol": "ListStateObserver.ContentUpdated.actions", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 171, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 173, "symbol": "ListStateObserver.ContentUpdated.positionInfo", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 175, + "symbol": "ListStateObserver.ContentUpdated.InsertionsAndRemovals", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 177, - "symbol": "ListStateObserver.VisibilityChanged.actions", + "symbol": "ListStateObserver.ContentUpdated.InsertionsAndRemovals.sections", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", "line": 178, + "symbol": "ListStateObserver.ContentUpdated.InsertionsAndRemovals.items", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 193, + "symbol": "ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 194, + "symbol": "ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs.inserted", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 195, + "symbol": "ListStateObserver.ContentUpdated.InsertionsAndRemovals.ChangedIDs.removed", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 203, + "symbol": "ListStateObserver.VisibilityChanged.actions", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 204, "symbol": "ListStateObserver.VisibilityChanged.positionInfo", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 180, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 206, "symbol": "ListStateObserver.VisibilityChanged.displayed", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 181, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 207, "symbol": "ListStateObserver.VisibilityChanged.endedDisplay", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 187, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 213, "symbol": "ListStateObserver.FrameChanged.actions", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 188, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 214, "symbol": "ListStateObserver.FrameChanged.positionInfo", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 190, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 216, "symbol": "ListStateObserver.FrameChanged.old", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 191, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 217, "symbol": "ListStateObserver.FrameChanged.new", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 197, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 223, "symbol": "ListStateObserver.SelectionChanged.actions", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 198, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 224, "symbol": "ListStateObserver.SelectionChanged.positionInfo", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 200, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 226, "symbol": "ListStateObserver.SelectionChanged.old", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListStateObserver.swift", - "line": 201, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListStateObserver.swift", + "line": 227, "symbol": "ListStateObserver.SelectionChanged.new", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListSizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListSizing.swift", "line": 72, "symbol": "ListView.contentSize(in:for:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListSizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListSizing.swift", "line": 82, "symbol": "ListView.contentSize(in:for:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 11, "symbol": "ListView", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 17, "symbol": "ListView.init(frame:appearance:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 66, "symbol": "ListView", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 128, "symbol": "ListView", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 155, "symbol": "ListView.debuggingIdentifier", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 161, "symbol": "ListView.appearance", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 187, "symbol": "ListView.scrollPositionInfo", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 200, "symbol": "ListView.layout", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 205, "symbol": "ListView.set(layout:animated:completion:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 210, "symbol": "ListView.contentSize", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 218, "symbol": "ListView.behavior", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 276, "symbol": "ListView.scrollIndicatorInsets", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 387, "symbol": "ListView.ScrollCompletion", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 513, "symbol": "ListView.environment", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 519, "symbol": "ListView.content", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 524, "symbol": "ListView.setContent(animated:_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 536, "symbol": "ListView.set(source:initial:animated:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 561, "symbol": "ListView.configure(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 578, "symbol": "ListView.configure(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 624, "symbol": "ListView.frame", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 630, "symbol": "ListView.bounds", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 678, "symbol": "ListView.backgroundColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 684, "symbol": "ListView.didMoveToWindow()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 693, "symbol": "ListView.didMoveToSuperview()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", "line": 702, "symbol": "ListView.layoutSubviews()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/ListView.swift", - "line": 1024, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/ListView.swift", + "line": 1025, "symbol": "ListView", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListView/UpdateCallbacks.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListView/UpdateCallbacks.swift", "line": 11, "symbol": "UpdateCallbacks", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewController.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewController.swift", "line": 74, "symbol": "ListViewController.reload(animated:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewController.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewController.swift", "line": 94, "symbol": "ListViewController.init(nibName:bundle:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewController.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewController.swift", "line": 105, "symbol": "ListViewController.loadView()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewController.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewController.swift", "line": 114, "symbol": "ListViewController.viewWillAppear(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 12, "symbol": "ListViewSource", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 14, "symbol": "ListViewSource.State", "symbol_kind": "source.lang.swift.decl.associatedtype", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 16, "symbol": "ListViewSource.content(with:content:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 18, "symbol": "ListViewSource.content(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 22, "symbol": "ListViewSource", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 24, "symbol": "ListViewSource.content(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 73, "symbol": "StateAccessor", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 75, "symbol": "StateAccessor.value", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 91, "symbol": "SourceState", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 93, "symbol": "SourceState.value", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 101, "symbol": "SourceState.set(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 110, "symbol": "SourceState.init(initial:didChange:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 117, "symbol": "SourceState.discard()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 131, "symbol": "DynamicSource", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 133, "symbol": "DynamicSource.Builder", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 137, "symbol": "DynamicSource.init(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 142, "symbol": "DynamicSource.content(with:content:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 154, "symbol": "StaticSource", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 156, "symbol": "StaticSource.State", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 158, "symbol": "StaticSource.State.init()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 161, "symbol": "StaticSource.content", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 163, "symbol": "StaticSource.init(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 168, "symbol": "StaticSource.init(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 173, "symbol": "StaticSource.content(with:content:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ListViewSource.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ListViewSource.swift", "line": 178, "symbol": "StaticSource.content(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/LocalizedItemCollator.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/LocalizedItemCollator.swift", "line": 43, "symbol": "AnyLocalizedCollatableItem.collationString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/LocalizedItemCollator.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/LocalizedItemCollator.swift", "line": 211, "symbol": "Item.collationString", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Previews/ItemPreviewView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Previews/ItemPreviewView.swift", "line": 116, "symbol": "ItemPreviewView.layoutSubviews()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Previews/ItemPreviewView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Previews/ItemPreviewView.swift", "line": 122, "symbol": "ItemPreviewView.sizeThatFits(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Previews/ItemPreviewView.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Previews/ItemPreviewView.swift", "line": 126, "symbol": "ItemPreviewView.intrinsicContentSize", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 11, "symbol": "RefreshControl", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 13, "symbol": "RefreshControl.isRefreshing", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 15, "symbol": "RefreshControl.title", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 17, "symbol": "RefreshControl.tintColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 19, "symbol": "RefreshControl.OnRefresh", "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 20, "symbol": "RefreshControl.onRefresh", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 22, "symbol": "RefreshControl.init(isRefreshing:title:tintColor:onRefresh:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 39, "symbol": "RefreshControl", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 41, "symbol": "RefreshControl.Title", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 43, "symbol": "RefreshControl.Title.string(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/RefreshControl.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/RefreshControl.swift", "line": 44, "symbol": "RefreshControl.Title.attributed(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ReorderingActions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ReorderingActions.swift", "line": 9, "symbol": "ReorderingActions", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ReorderingActions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ReorderingActions.swift", "line": 11, "symbol": "ReorderingActions.isMoving", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ReorderingActions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ReorderingActions.swift", "line": 21, "symbol": "ReorderingActions.beginMoving()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ReorderingActions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ReorderingActions.swift", "line": 36, "symbol": "ReorderingActions.moved(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ReorderingActions.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ReorderingActions.swift", "line": 45, "symbol": "ReorderingActions.end()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ScrollAnimation.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ScrollAnimation.swift", "line": 24, "symbol": "ScrollAnimation.spring(duration:timing:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ScrollAnimation.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ScrollAnimation.swift", "line": 81, "symbol": "ScrollAnimation.AnimationOptions.curveEaseInOut", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ScrollAnimation.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ScrollAnimation.swift", "line": 82, "symbol": "ScrollAnimation.AnimationOptions.curveEaseIn", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ScrollAnimation.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ScrollAnimation.swift", "line": 83, "symbol": "ScrollAnimation.AnimationOptions.curveEaseOut", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ScrollAnimation.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ScrollAnimation.swift", "line": 84, "symbol": "ScrollAnimation.AnimationOptions.curveLinear", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/ScrollAnimation.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/ScrollAnimation.swift", "line": 91, "symbol": "Set.default", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", "line": 9, "symbol": "Section", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 68, - "symbol": "Section.Build", - "symbol_kind": "source.lang.swift.decl.typealias", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 60, + "symbol": "Section.layouts", + "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 70, - "symbol": "Section.init(_:build:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 66, + "symbol": "Section.Configure", + "symbol_kind": "source.lang.swift.decl.typealias", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 80, - "symbol": "Section.init(_:build:)", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 68, + "symbol": "Section.init(_:configure:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 90, - "symbol": "Section.init(_:layout:columns:header:footer:items:)", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 78, + "symbol": "Section.init(_:layouts:header:footer:items:configure:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 109, - "symbol": "Section.init(_:layout:columns:header:footer:items:)", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 96, + "symbol": "Section.init(_:layouts:header:footer:items:configure:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 133, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 121, "symbol": "Section.add(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 138, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 126, "symbol": "Section.+=(_:_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 143, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 131, "symbol": "Section.+=(_:_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 148, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 136, "symbol": "Section.+=(_:_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 157, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 145, "symbol": "Section.+=(_:_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 162, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 150, "symbol": "Section.+=(_:_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 167, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 155, "symbol": "Section.+=(_:_:)", "symbol_kind": "source.lang.swift.decl.function.method.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 185, - "symbol": "Section", - "symbol_kind": "source.lang.swift.decl.extension", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 187, - "symbol": "Section.Layout", - "symbol_kind": "source.lang.swift.decl.struct", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 189, - "symbol": "Section.Layout.width", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 194, - "symbol": "Section.Layout.init(width:customInterSectionSpacing:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 202, - "symbol": "Section.Columns", - "symbol_kind": "source.lang.swift.decl.struct", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 204, - "symbol": "Section.Columns.count", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 205, - "symbol": "Section.Columns.spacing", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 207, - "symbol": "Section.Columns.one", - "symbol_kind": "source.lang.swift.decl.var.static", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 211, - "symbol": "Section.Columns.init(count:spacing:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 223, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 173, "symbol": "SectionInfo", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 229, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 179, "symbol": "SectionInfo.identifier", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 231, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 181, "symbol": "SectionInfo.wasMoved(comparedTo:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 235, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 185, "symbol": "AnySectionInfo", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 241, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 191, "symbol": "AnySectionInfo.anyIdentifier", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 243, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 193, "symbol": "AnySectionInfo.anyWasMoved(comparedTo:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 247, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 197, "symbol": "SectionInfo", "symbol_kind": "source.lang.swift.decl.extension", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 249, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 199, "symbol": "SectionInfo.anyIdentifier", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Section.swift", - "line": 253, + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Section/Section.swift", + "line": 203, "symbol": "SectionInfo.anyWasMoved(comparedTo:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 134, "symbol": "Sizing.MeasureInfo", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 151, "symbol": "Sizing.Constraint", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 153, "symbol": "Sizing.Constraint.width", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 154, "symbol": "Sizing.Constraint.height", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 156, "symbol": "Sizing.Constraint.noConstraint", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 163, "symbol": "Sizing.Constraint.init(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 169, "symbol": "Sizing.Constraint.init(width:height:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 177, "symbol": "Sizing.Constraint.clamp(_:with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 185, "symbol": "Sizing.Constraint.Axis", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 187, "symbol": "Sizing.Constraint.Axis.noConstraint", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 189, "symbol": "Sizing.Constraint.Axis.atLeast(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 190, "symbol": "Sizing.Constraint.Axis.atMost(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 192, "symbol": "Sizing.Constraint.Axis.within(_:_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 194, "symbol": "Sizing.Constraint.Axis.Value", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 196, "symbol": "Sizing.Constraint.Axis.Value.default", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 197, "symbol": "Sizing.Constraint.Axis.Value.fixed(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 199, "symbol": "Sizing.Constraint.Axis.Value.value(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 208, "symbol": "Sizing.Constraint.Axis.clamp(_:with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 222, "symbol": "WidthConstraint", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 224, "symbol": "WidthConstraint.noConstraint", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 225, "symbol": "WidthConstraint.fixed(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 226, "symbol": "WidthConstraint.atMost(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 228, "symbol": "WidthConstraint.clamp(_:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 239, "symbol": "CustomWidth", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 241, "symbol": "CustomWidth.default", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 242, "symbol": "CustomWidth.fill", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 243, "symbol": "CustomWidth.custom(_:)", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 245, "symbol": "CustomWidth.merge(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 254, "symbol": "CustomWidth.position(with:defaultWidth:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 276, "symbol": "CustomWidth.Custom", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 278, "symbol": "CustomWidth.Custom.padding", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 279, "symbol": "CustomWidth.Custom.width", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 280, "symbol": "CustomWidth.Custom.alignment", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 282, "symbol": "CustomWidth.Custom.init(padding:width:alignment:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 293, "symbol": "CustomWidth.Custom.position(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 312, "symbol": "CustomWidth.Alignment", "symbol_kind": "source.lang.swift.decl.enum", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 314, "symbol": "CustomWidth.Alignment.left", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 315, "symbol": "CustomWidth.Alignment.center", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 316, "symbol": "CustomWidth.Alignment.right", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 318, "symbol": "CustomWidth.Alignment.originWith(parentWidth:width:padding:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 331, "symbol": "CustomWidth.Position", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 339, "symbol": "HorizontalPadding", "symbol_kind": "source.lang.swift.decl.struct", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 341, "symbol": "HorizontalPadding.left", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 342, "symbol": "HorizontalPadding.right", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 344, "symbol": "HorizontalPadding.zero", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 348, "symbol": "HorizontalPadding.init(left:right:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/Sizing.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/Sizing.swift", "line": 354, "symbol": "HorizontalPadding.init(uniform:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/SwipeActionsConfiguration.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/SwipeActionsConfiguration.swift", "line": 21, "symbol": "SwipeActionsConfiguration.init(action:performsFirstActionWithFullSwipe:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/SwipeActionsConfiguration.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/SwipeActionsConfiguration.swift", "line": 25, "symbol": "SwipeActionsConfiguration.init(actions:performsFirstActionWithFullSwipe:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/SwipeActionsConfiguration.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/SwipeActionsConfiguration.swift", "line": 44, "symbol": "SwipeAction.title", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/SwipeActionsConfiguration.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/SwipeActionsConfiguration.swift", "line": 45, "symbol": "SwipeAction.backgroundColor", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/SwipeActionsConfiguration.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/SwipeActionsConfiguration.swift", "line": 46, "symbol": "SwipeAction.image", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/SwipeActionsConfiguration.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/SwipeActionsConfiguration.swift", "line": 48, "symbol": "SwipeAction.handler", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { - "file": "/Users/k/Desktop/Development/Listable3/ListableUI/Sources/SwipeActionsConfiguration.swift", + "file": "/Users/k/Desktop/Development/Listable2/ListableUI/Sources/SwipeActionsConfiguration.swift", "line": 50, "symbol": "SwipeAction.init(title:backgroundColor:image:handler:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" } ], - "source_directory": "/Users/k/Desktop/Development/Listable3" + "source_directory": "/Users/k/Desktop/Development/Listable2" } \ No newline at end of file