# PR-03 Asset Declaration Parsing, Validation, and Details Contract

Domain Owner: `docs/packer`

## Briefing

Implement strict `asset.json` parsing and the packer-side details contract used by both tooling and Studio.

This PR converts the declaration spec into typed packer models and structured diagnostics.

## Objective

Deliver strict parse, schema/version checks, common field validation, and a `get_asset_details` response model that Studio can consume through an adapter.

## Dependencies

- [`./PR-02-workspace-init-registry-and-identity-foundation.md`](./PR-02-workspace-init-registry-and-identity-foundation.md)
- [`../specs/3. Asset Declaration and Virtual Asset Contract Specification.md`](../specs/3.%20Asset%20Declaration%20and%20Virtual%20Asset%20Contract%20Specification.md)
- [`../specs/6. Versioning, Migration, and Trust Model Specification.md`](../specs/6.%20Versioning,%20Migration,%20and%20Trust%20Model%20Specification.md)

## Scope

- parse and validate the common `asset.json` contract
- validate required baseline fields:
  - `schema_version`
  - `name`
  - `type`
  - `inputs`
  - `output`
  - `preload`
- emit structured diagnostics for parse, structural, and version errors
- define the packer `get_asset_details` response model
- preserve distinction between valid-orphan declarations and invalid declarations

## Non-Goals

- no full format-family payload encoding rules
- no workspace scan aggregation yet
- no mutation apply behavior yet

## Execution Method

1. Implement typed declaration models and strict decoding.
2. Add common semantic validation and diagnostic mapping.
3. Define details-response DTOs that preserve both declaration and diagnostic evidence.
4. Back the contract with representative valid and invalid fixtures.

## Acceptance Criteria

- invalid declarations fail with actionable structured diagnostics
- valid declarations produce stable typed models
- `get_asset_details` can expose declaration, inputs, output, preload, and diagnostics cleanly
- unsupported or malformed schema versions surface as explicit failures

## Validation

- fixture-driven parser tests
- semantic validation tests for required fields
- details-response tests for valid, orphan, and invalid declarations

## Affected Artifacts

- `prometeu-packer/**`
- packer declaration fixtures
- cross-domain reference: Studio asset details adapter inputs
