# Runtime Core
Domain-neutral runtime surface DTOs and shared CLI/server adapter helpers for
the workspace package surfaces.
## Runtime surface contracts
`runtime-core` owns the shared package-surface DTOs, structured success
responses, release-schema helpers, and typed `SurfaceError` envelope used by
transport wrappers. Successful operation values preserve crate-specific fields
and add `operation`, `title`, `message`, `summary`, and `result` for generic UI
rendering.
Typed surface errors serialize as JSON with `code`, `message`, `operation`, and
`details`, so CLI, HTTP, WASM, and app adapters can report validation,
unsupported-operation, unsupported-value, and resource-limit failures without
inventing transport-specific error shapes.
Execution planning metadata is additive. Crates can use
`surface_operation_with_execution_plan` to attach `xExecutionPlan` schema
extensions that describe whether an operation is in-memory, a planned job, a
background job, or an external command, plus side effects, cancellation,
progress units, artifact expectations, requirements, and recommended input
limits. This keeps package surfaces runtime-aware without adding required fields
to `SurfaceOperation`.
Curated landscape metadata is also additive. Crates can use
`surface_operation_with_landscape` or `attach_landscape_contract` to attach an
`xLandscape` schema extension that names stable curated input and output types
for package consumers. The metadata is string-based; `runtime-core` owns the
shape, known owner/type IDs, and generic validation, while domain crates keep
ownership of the actual type semantics. When declared, `xLandscape` must be
identical on input and output schemas. Missing metadata means curated I/O has
not been declared yet.