"""App Blocks — reusable full-stack product patterns owned by Core.

Core owns composition.
Feature Packs own backend behavior.
Cloud owns execution.
App Blocks own reusable product patterns.
Starter Library owns presentation mechanics (foundations, primitives, composites).
Codegen owns placement, brand, copy, and unique UX.

App Block UI slots reference Starter contract IDs, not framework filenames.
App Blocks may customize experience, but may not decentralize platform authority.

Authoring rules: docs/FEATURE_PACKS_APP_BLOCKS_STARTER.md
"""

from src.domain.app_blocks.canonical import APP_BLOCK_CANONICAL_MODEL, CanonicalCatalog
from src.domain.app_blocks.compiler import compile_install_plan
from src.domain.app_blocks.ports import CapabilityPlanner
from src.domain.app_blocks.registry import AppBlockRegistry, load_default_registry

__all__ = [
    "APP_BLOCK_CANONICAL_MODEL",
    "AppBlockRegistry",
    "CanonicalCatalog",
    "CapabilityPlanner",
    "compile_install_plan",
    "load_default_registry",
]
