Accent Fields Files

Single

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.

What is stored

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.

Declaring one

Label Brochure
Key brochure
Data type media
Editor file_picker
Constraint documents and video — enforced by the picker AND the write boundary

Embedding video

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.

When the other shape fits

A set of downloads — press kits, board minutes, a season of PDFs — is the Multiple shape.