One file — the link idiom, and the video embed as a kind-check.
One file: a media reference constrained to documents and video — the
Files kind's scalar shape. In the admin this is the File
field type.
The asset's id; filename, size and mime type live on the library asset. The template's usual job is a link that says what it is:
<% if (brochure) { %>
<a href="<%= brochure.src %>"><%= brochure.title || brochure.filename %></a>
<% } %>
The reference wakes to a resolved object — {src, filename, title, size, mime_type, extension…} — so the link and its label come straight
off the value.
| Label | Brochure |
| Key | brochure |
| Data type | media |
| Editor | file_picker |
| Constraint | documents and video — enforced by the picker AND the write boundary |
A template that needs to embed checks the kind:
<% if (attachment?.type === 'video') { %>
<video src="<%= attachment.src %>" controls></video>
<% } else if (attachment) { %>
<a href="<%= attachment.src %>"><%= attachment.title || attachment.filename %></a>
<% } %>
Video assets wake with duration and, when set, a poster_id — enough
for a real player without a second lookup.
A set of downloads — press kits, board minutes, a season of PDFs — is the Multiple shape.