<posterverse-app> is a vertical-tab rail of whole poster plugins, each mounted as its real element from the manifest: UPG 100 List Posters (upg-100-mfe), Country Posters (country-posters-mfe), Poster Design, and an Experimental folder of Wall of People Groups, All People Groups, UPG Neighbor and Bible Posters. It reuses VerticalTabsLayout, loadScriptOnce/whenTagDefined and the Research Gallery's profile-config contract (urlSync:false, mapTitle, token ladder, treeBase, assetsBase). The whole rail is an allow-list (src/tabs.js), so a gated plugin such as key-cities can never appear. Rows whose bundle is not in the tree are pruned; Poster Design and Bible Posters carry provisional ids until their bundles land. meta.json declares nested-mfe-spa and composes the five rows that exist, so the Plugin Studio lists it under capability 5. check:posterverse-shelf (in gates:pre) asserts the allow-list, the key-cities exclusion, composite-not-leaf resolution, composes/rail agreement and 11-locale string parity; --self-test plants one defect per arm.
12 lines
928 B
JSON
12 lines
928 B
JSON
{
|
|
"_comment": "Declares the composability tier. 'nested-mfe-spa' = capability 5: an app shell whose single element <posterverse-app> renders a vertical-tab rail of whole poster plugins, each mounted as its own real element from the manifest (no iframes). The tier is DERIVED from `composes` at tree generation (composing a cap-4 makes this cap-5) and this `type` is checked against it. `composes` lists every row in src/tabs.js whose bundle exists today; a provisional row (poster-design, bible-posters) joins the list when its bundle lands, since an unresolved ref fails check:capability-derived.",
|
|
"type": "nested-mfe-spa",
|
|
"composes": [
|
|
"my-upg-100-list/upg-100-mfe",
|
|
"country-posters/country-posters-mfe",
|
|
"wall-of-people-groups/wall-of-people-groups",
|
|
"all-people-groups/all-people-groups",
|
|
"upg-neighbor/upg-neighbor"
|
|
],
|
|
"label": "Posterverse (vertical-tab app shell: every poster plugin)"
|
|
}
|