Six constraints that shape everything else
These aren't style preferences — they're how the platform works. Design inside them and nothing has to be rebuilt later.
1 · The page names are labels, not jobs
Three pages are customizable — Home, Watch, Property Info — and each is a blank 1280 × 720 canvas. The name appears only on its side-nav icon; the header inside the page can say anything. A "Watch" page may contain no watch features, and "Property Info" doesn't have to be property info.
2 · One focus color, property-wide
The highlight that shows a guest what's selected is set once per property and applies to every page and the side nav. It renders either as a full color fill of the container or as an outline around it. Because it's property-wide, choose a color that stands out against every page background and every container background you intend to use — not just the one page you picked it on. Advertisers cannot have their own.
3 · A link goes to a page or a modal
A container can link to a system page (Home, Watch, Apps, Property Info, Casting, Settings, TV Guide, Search, On Demand, Live Player) or open a modal. There is no web browser and no external URL. The modal is the only route to advertiser detail.
4 · No QR element — bake it into the artwork
QR codes must be part of the supplied image. That is also the only way an advertiser gets a measurable response, which makes it a requirement rather than an option.
5 · The platform reports nothing back
There is no impressions, clicks, or dwell reporting anywhere in the builder — verified across every release note to date. Ads must be sold on guaranteed placement over a term, not on measured impressions. See Selling it.
6 · Layout changes route through MVM. Content changes don't.
The Property Manager role can't edit a page layout — but
can be given access to edit the content inside the containers: swap
photos, change text. Layout changes are requested through MVM.
MVM can build multiple layouts for the same page and the property picks
which one runs, depending on the look wanted and the ad space sold. Elements can also be
saved and reused — but only the formatting is saved, not the content, so
switching layouts means recreating any content you want to carry over.
Home page layouts
Sixteen complete layouts follow — six for Home, six for Watch, four for Property Info — every one drawn at the real 1280 × 720 canvas in true pixels. Read them first to see what's possible; the specifications behind them (canvas, column widths, elements, type) come after.
Home is the page every guest lands on when the TV turns on, and the only page without a side nav — the widest canvas and the most valuable. The four tiles used throughout: Watch TV → the Watch page · Guide → the Channel Guide · Hotel Info → a modal · Info & Offers → the Property Info page.
The standard layout
Baseline · 1 ad unitHero image with a welcome line and the guest's name, four navigation tiles, one static footer banner at 1200 × 106 — about 15% of the page height.
Rotating footer, five tiles
Unlimited footer inventoryTwo changes: the footer becomes a carousel and grows to a fifth-height band running full bleed to both edges. Five advertisers now share a space that held one, each getting a full-width placement roughly every 20 seconds. The fifth tile is sold — a sponsored tile opening a modal. Note what it isn't: a "Dining" tile can't open a modal, because a modal holds one image and one block of copy, not a list of venues. Anything list-shaped points at a page. Focus shown here as a fill rather than an outline.
Video background with a sponsor rail
Highest value per guestThe property's own video loops behind everything and a tall rail on the right runs flush to the edge, carrying three stacked advertisers on screen the entire time — no rotation, no sharing. The rail starts below the clock block.
Title sponsor split hero
One flagship productThe hero is cut two-thirds / one-third. The right third is a single advertiser, full bleed to the top and right, sitting beside the guest's own name. The most expensive thing on the property, and there is exactly one of it — note the clock lands on top of it, so the artwork has to allow for that.
Sponsored tiles in the navigation row
Highest engagementTwo of the six tiles belong to advertisers, styled like the real navigation and opening a modal instead of a page. Guests arrow across this row every session, which makes these the most-focused containers on the property.
Maximum inventory
11 slots on one screenHow far this can be pushed: compressed hero, a four-across mid band, and a rotating footer. Shown so the ceiling is visible, not as a recommendation. Past about six visible advertisers the page stops feeling like a resort and starts feeling like a billboard.
Watch page layouts
A second full canvas with a navigation icon already pointing at it. It can stay a TV page — Stream · Cast · Guide — or become Dining, Things To Do, or a pure offers page. The name on the icon doesn't bind the header inside. Everything sits inside the 1192 × 605 safe area starting at x 88 / y 115.
The real Watch page — Guide, Cast and the apps
Keeps the page's name honestTV Guide and Cast as deep-link tiles, then the app tiles. This row is what a guest expects to find here, so keep it whatever else the page becomes — every repurposed version below keeps it across the top.
Three feature tiles — the presented concept
Closest to the original designThe version shown in the original concept: a centred page title, three large image tiles, and one sponsored banner across the bottom. Fewer destinations than the rail, but each one is a much bigger target — and the banner is premium because it's the only ad on the page.
Repurposed as Dining — rail kept, fold visible
Unlimited, tiered by positionThe deep-link rail stays across the top so the page still does its original job; the repurposed content sits under it. Three cards above the fold, the second row cut by the bottom of the screen — which is the entire pricing argument.
Offers grid — eight advertisers, eight modals
Volume productA marketplace page that still opens with the rail. Every tile is its own container linking to its own modal — one image, one headline, one description each. This is the page to sell to the long tail that can't afford Home.
Feature carousel — the biggest single placement
Top tierOne carousel taking most of the safe area. Rotating five advertisers through it gives each something close to a full-screen takeover, several times per session, without any of them owning the page outright.
Single-sponsor takeover
Weekly / event productOne advertiser owns the page for a week. The background video is full screen, so the rail still has to sit on top of it — keep the rail short and give the tiles a semi-transparent background so the video reads through rather than being boxed out. Supply the video with its top third kept visually quiet and nothing important up there.
Property Info layouts
The page carrying the most content — and the destination for the Info & Offers tile. Three columns is a choice, not a requirement, and columns don't have to match each other in width or height.
Header strip plus three columns
BaselineThe white strip is the container tree from Elements, built for real — icon, header and subheader in each group. It runs full bleed from x 0, so the side navigation sits on top of its left end; keep content to the right of x 88. Column headers and their subheaders line up across all three.
Three-part list rows beside a tall sponsor
Best revenue-per-pixelEach entry is one line with three parts — name, short description, image — all left-aligned, which uses the width instead of leaving a column of dead space. The list scrolls, so it holds as many venues as the property can sell; the right column is a single tall advertiser that never leaves the screen.
Four categories, unequal heights
Columns need not matchEach column carries only a header and subheader at the top; everything under it is open canvas the property fills — images, text, a list, a carousel. Deliberately not drawn as one big pressable block: a focusable column would open a modal, and a modal holds one image and one block of copy, which is the wrong shape for a category. Where a column runs short, the filler below it runs to the bottom edge rather than leaving a gap.
Content left, full-height sponsor right
Simplest premium productA 3:1 split where the right column runs the full height of the safe area, from y 115 to the bottom edge. One advertiser, one slot, impossible to miss, and the easiest thing on this list to explain to a buyer.
Everything from here down is the specification behind those pages: the two canvases and their safe areas, the column widths and heights, the elements and how containers nest, type sizes and faces, artwork specs, the modal, the scroll calculator, and how to price the inventory.
Two canvases, not one
1280 × 720 is everything a guest sees without pressing down. Home gets the whole thing. Watch and Property Info give up the left 88 px to the side navigation and the top 115 px to the clock band, leaving a 1192 × 605 safe area that runs flush to the right and bottom edges.
The time and date occupy a fixed 332 × 115 block in the top-right corner of every page, Home included. It cannot be moved, restyled or turned off. It sits over whatever is behind it, so a background image can run underneath — but nothing that needs reading should land there.
Home canvas — the full 1280 × 720
No side navigation and no safe-zone inset. The locked clock block is the only reserved area.
Watch & Property Info canvas — 1192 × 605 safe area
Side-navigation icons drawn at actual size so you can see what the left 88 px costs. The safe area starts at x 88 / y 115 and runs flush to the right and bottom edges — no right margin, no bottom margin. Note the clock's 115 height is exactly the top offset of the safe area; the two measurements agree.
| Region | Extent | Status | Notes |
|---|---|---|---|
| Home canvas | 1280 × 720 | All of it | No side nav. |
| Locked clock | 332 × 115 @ (948, 0) | Cannot change | Every page. Backgrounds may run under it; nothing that needs reading. |
| Side-nav gutter | x 0 → 88 | Do not use | Watch and Property Info only. |
| Clock band | y 0 → 115 | Degraded | Darkening gradient across the full width. |
| Nav-page safe area | 1192 × 605 @ (88, 115) | Build here | Flush to the right and bottom edges. |
| Below the fold | y > 720 | Sellable, lower tier | Reachable only by arrowing down inside a vertical container. Unlimited capacity. |
Backgrounds, image blocks and colour bands can run to the literal screen edge. The one thing worth insetting is running text, which reads better with 16–32 px of air. Keep the two ideas separate: the safe area is a platform boundary, a text inset is taste.
How many across, how tall, and what size artwork
Width is the part that has to be exact, because columns and gaps must add up to the canvas. Height is entirely yours. In every diagram below, each column is drawn at full height with a half-height and a fifth-height block nested inside it, so you can see the proportions rather than a layout.
"Gutter" = the gap between containers
If two containers sit side by side, the gutter is the space between them — a right margin on the first, a left margin on the second, or padding on the parent. It isn't a builder setting; it's just the number reserved so the column widths add up exactly.
Height is up to you
The grid constrains width only. A full-width container can be 780 tall or 90 tall. Full page, about half, and about a fifth are reference points for judging proportion — not a menu you have to choose from.
Artwork: match the shape, double the pixels
Supply artwork at the exact aspect ratio of the container, or the box crops or letterboxes it and you don't control which. Then double it — see below.
The 1280 × 720 canvas is a design space, not the panel's pixel grid. It scales up to a 1920 panel (1.5×) or a 4K panel (3×), so artwork supplied at exactly container size is upscaled 1.5–3× before a guest sees it. That's why fine text and logo edges go soft on the TV but look fine in the preview. Images themselves can be any dimensions — match the container's shape and go as large as the asset budget allows.
1280 wide · full 720 height · no side nav
Full = 720 · Half = 360 · Fifth = 144.
One container, full width — 1280
Two containers — 632 each, 16 gutter
Three containers — 416 each, 16 gutter
Four containers — 308 each, 16 gutter
308 is about the narrowest a container can go and still carry a logo plus a readable line of text at viewing distance.
Uneven two-column — 844 + 420, 16 gutter
Two containers side by side where one is twice the width of the other. Equal columns mean equal price; an uneven split lets you sell one anchor position at a premium next to a cheaper one, in the same strip.
1192 wide · 605 height · inside the safe area
Everything starts at x 88 / y 115. Full = 605 · Half = 300 · Fifth = 121.
One container, full safe width — 1192
Two containers — 588 each, 16 gutter
Three containers — 384 each, 20 gutter
A 20 px gutter is what makes three columns divide 1192 exactly.
Four containers — 286 each, 16 gutter
Uneven two-column — 784 + 392, 16 gutter
| Across | Home · 1280 | Gutter | Nav pages · 1192 | Gutter |
|---|---|---|---|---|
| 1 | 1280 | — | 1192 | — |
| 2 | 632 | 16 | 588 | 16 |
| 3 | 416 | 16 | 384 | 20 |
| 4 | 308 | 16 | 286 | 16 |
| 5 | 240 | 20 | 224 | 18 |
| 6 | 200 | 16 | 182 | 20 |
| Anchor + standard (2:1) | 844 + 420 | 16 | 784 + 392 | 16 |
| Anchor + standard (3:1) | 948 + 316 | 16 | 882 + 294 | 16 |
The toolkit
Everything on a page lives inside a container, and containers nest. The one rule that governs how a page feels to use: focus is what makes the remote stop. A container that isn't focusable is invisible to navigation — the guest arrows straight past it.
Containers nest, and you choose the depth
A parent container is a region — the left, middle or right block of a strip. A child container groups things that belong together, like a venue name and its subheading. And at the bottom, each individual element gets its own container too — because an image or a line of text is never focusable by itself. The container around it is what the remote can land on. Here is a real header strip: every node below is a container, and the element each one holds is marked on the right.
- Property header — white stripContainer
- Left group — the resort-hours sectionContainer
- Image container — swimming iconContainerholds an Image
- Header container — "Resort Hours"Containerholds Text
- Subheader container — "Pool, fitness & more…"Containerholds Text
- Separator containerContainerholds a Separator
- Middle group — the need-anything sectionContainer
- Image container — bell iconContainerholds an Image
- Header container — "Need Anything?"Containerholds Text
- Subheader container — "Text Guest Services…"Containerholds Text
- Right group — the image sectionContainer
- Image containerContainerholds an Image
- Left group — the resort-hours sectionContainer
This is why everything gets wrapped. An image, a line of text, a separator — none of them can
be selected on their own. Focus is a property of the container, so if you want
a single icon to be clickable, that icon needs a container of its own. Wrapping each element
individually is what keeps every option open later.
Nothing in this strip needed to open anything, so nothing was made focusable and the guest
arrows straight past it. But any level could be: the whole white strip, or just
the left group, or just the bell icon. That choice decides how many times a guest presses
right to cross the page — so make focusable only what actually leads somewhere.
| Element | What it does | Ad use |
|---|---|---|
| Container | Houses everything else — including other containers. Layout is Overlap (free
stacking, positioned by margins), Horizontal (children side by side), or
Vertical (children stacked — and the only layout that scrolls when content
exceeds the height). Focus is optional per container and renders as a fill or an outline. |
The unit of sale One advertiser = one container = one link target. Only containers can be focused — an element on its own never can, which is why each one is wrapped. |
| Image | Any size. Match the container's aspect ratio and supply at 2× for a clean render. There is no fixed in-page image spec. | The workhorse. All ad artwork is an image inside a container. |
| Video | Plays in place when the guest selects it, or loops continuously as a full-page background. | Premium — an advertiser spot, or an ambient brand loop behind the whole page. |
| Text | Headline / Sub-headline / Body. Each has a property-level default you set once, and any element can override it. | Offer copy, pricing, hours, phone numbers. |
| Button | A labelled call to action. | "Reserve a table", "See the offer" → opens a modal. |
| Separator line | Horizontal or vertical, 1 px thick, any length you want. | Divides list entries. Its margins set the list's row pitch — see Scroll. |
| Gallery | Lays out many containers, stacked vertically or spread horizontally. It never moves on its own — it reacts only to the guest: selecting an entry, or scrolling down past the last visible one in a vertical container. Any size. | Unlimited A vertical gallery is an endlessly extensible list. The top entries are what sells. |
| Carousel | Shows one item at a time and changes — automatically on a timer (~3.5–4 s), or on
guest input. That timer is the whole difference from a Gallery. Any size. In the legacy builder these were three fixed-size widgets — Slider, Gallery Carousel and Hero Carousel. Here they're one element you resize freely. |
Unlimited Sell the same physical space N times over. |
| Live channel | A preview of what's on a popular network, with details, linking straight to that channel. | Available; rarely used. |
| Predefined tools | Guest name (requires a PMS connection), sports scores, local weather. | Guest name next to a sponsor message is the most personal placement on the page. |
Any container can be an ad. What makes it an advertisement rather than decoration is that it's focusable and linked — selecting it opens the modal with the advertiser's image, headline, subheadline and body. Build the slot like any other container and point it at a modal.
Per-element settings
Sizing
Fixed — a set number of pixels. Fill — take the remaining space. Content — size to what's inside. Width and height are set independently.
Position
Horizontal align left / center / right, vertical align top / middle / bottom, plus margins and padding. In an Overlap container, margins are measured from the page edge.
Appearance
Opacity, corner radius, rotation, border color and thickness, and a background that can be a solid, a gradient, or an image.
A vertical container scrolls. That single setting converts a fixed page into unlimited ad inventory: show five restaurants above the fold and hold fifty more below it. Everything in Selling it rests on this.
Sizes, weights and faces
These sizes are measured on a 50-inch panel read from across a room, not taken from a style guide. Properties run 43-inch sets at minimum, most 50 to 55. The scale below holds at that distance while leaving you the page space that oversized type would eat.
The scale
Rendered here in Lato at the actual pixel sizes — the type below is the size the builder will set.
| Role | Size | Weight | Notes |
|---|---|---|---|
| Hero / page title | 42 | Regular or Medium | The welcome line, the guest's name. |
| Large statement | 36 | Regular or Medium | An extra step when 42 is too much and 32 too little. |
| Section header | 32 | Medium | The page's own header. |
| Column / card header | 24 | Medium or Semi Bold | Also the right size for tile and button labels. |
| Item name | 18 | Bold | A venue name, an offer title — bold is what separates it, not size. |
| Body | 16 | Regular | The default for most text on the page. |
| Secondary / caption | 14 | Regular | The floor. Readable, but it's the smallest a 43-inch set carries comfortably. |
Choose colors a step darker than looks right
The panel lifts and brightens everything. A mid-tone that reads correct in the browser preview reads washed out on the TV. This catches people out more than any other single thing.
Never put small text over a photo
Put it on a solid block or a scrim. A photographic background will always have a patch somewhere that swallows the text, and you won't see it until it's in a room.
White text is a default, not a rule
Modal text is locked to white on black. Page text is not — dark type on a light container is often the more legible choice, and it's available.
Available faces
Rendered in the real typeface, sentence case and all caps, so you can see how each behaves on screen. Unless you have a reason to do otherwise, set one face for the whole property — mixing more than two is what makes a TV page look assembled rather than designed.
Cormorant has very fine strokes — at 16 px on a panel those hairlines thin out and can disappear. If you want it, use it large, for headers only. Caveat, Dancing Script and Sacramento are display faces: beautiful for a welcome line, unreadable as body text, and they should never be set in all caps — the letters are drawn to join, and capitals break the joins.
What to ask advertisers for
Hand this to anyone supplying creative. Supply at the maximum listed — the box scales down cleanly and up badly.
| Asset | Minimum | Maximum / recommended | Ratio | Notes |
|---|---|---|---|---|
| In-page image | container size | 2 × container size | match the container | No fixed spec — size it to the slot. A 1200 × 144 band wants 2400 × 288 artwork. |
| Full-screen background image | 1280 × 720 | 3840 × 2160 | 16:9 | Behind a whole page. |
| Background video | 1280 × 720 | 3840 × 2160 · 200 MB | 16:9 | Loops behind a page. Keep it slow and low-contrast — it sits under text. |
| Screensaver images | 1920 × 1080 | 3840 × 2160 | 16:9 | Up to 5. Appears after 30 min / 45 min / 1 hr / 1.5 hr / 2 hr of inactivity — you pick one. Sellable |
| Screensaver video | 3840 × 2160 | 4096 × 2160 · 200 MB | 16:9 | 1 video, instead of the images. Same inactivity options. Sellable |
| Property logo | height 75 | height 400 | free | PNG, transparent. These sizes apply to the dedicated logo field only — see below for placing a logo anywhere, at any size. |
| Modal image | 682 × 384 | 1364 × 767 | 16:9 | Confirming The image at the top of the popup modal. |
Formats & storage
JPEG / JPG / PNG / TIFF for stills. MP4 / M4V / MOV / MKV / WEBM for video. 600 MB of asset storage per property — a single 200 MB background video is a third of the budget. Plan for it.
The logo field is a trap — place it as an image instead
The dedicated logo field pins the logo to a fixed spot in the upper-left of every page, at a fixed size. To get out of that: put a blank image in the logo field, then place the real logo as an ordinary image element wherever you want it, at whatever size. There is no size limit on a logo placed that way.
Screensaver — off by default, and unsold
Most properties leave the screensaver disabled, so inactivity doesn't blank the screen or turn the TV off at all. It can be switched on whenever there's a reason to — and five full-screen 4K placements shown to a guest who left the TV on is the largest uninterrupted canvas on the platform. Turn it on when you sell it
The detail panel
Selecting a focused container opens a panel over roughly a third of the screen: image on top, then headline (required), subheadline, and body. Text is always white on black. It is the only place an advertiser gets more than a banner.
Structure
One image, one headline, one subheadline, one body. There is no way to put a list of restaurants, a set of offers, or a row of thumbnails inside a modal. If a tile should open several things, point it at a page; a modal is for one advertiser, one venue, one offer.
Headline, subheadline and body share the same column of space. Long text doesn't get cut
mid-word — it wraps onto the next line — but every extra line it takes is a
line the body loses at the bottom. A two-line headline costs you a line of description.
Aim for 10 lines of body. Around 13 will fit if the headline and subheadline
each stay on one line, and more still if there's no subheadline — but the safe target is 10.
Anything past the bottom of the panel simply doesn't display, with no warning, so keep
descriptions brief. Confirming exact capacity with the vendor
Where the fold falls — and why that's the price list
A vertical container scrolls, so a list has no length limit. But only a fixed number of rows are visible before a guest has to press down, and most never will. That boundary separates two products sold at two prices.
How tall a row is depends entirely on what you put in it — font sizes, how many lines the description runs to, whether there's a thumbnail, how much padding sits around it. There is no single right answer, so rather than publish one property's numbers as if they were the rule, here is the arithmetic as a calculator. Set it to your section and it returns the container height, with the fold drawn to scale underneath.
The section
Header text
Subheader text
Image
Separator
Assumption
A line of 18 px type occupies 18 × 1.35 ≈ 24 px. Adjust if your build measures differently. Weight changes how the text looks, not how tall it is.
Featured positions — a fixed, small number, visible with no guest effort, sold at a premium and renewed. Directory positions — unlimited, reached by scrolling, sold cheaply or bundled. The container height is what sets the boundary, and you control it to the pixel.
Turning layout into inventory
Every slot in this kit falls into one of four tiers, set by how much guest effort it takes to see it and how many advertisers share the space — not by size.
| Tier | Definition | Examples | Supply |
|---|---|---|---|
| Exclusive | One advertiser, no rotation, visible the moment the page opens. | Home 4 title sponsor · Watch 6 takeover · Info 4 full-height · Info 2 skyscraper | 1 per page |
| Fixed | Permanently on screen but sharing the page. | Home 3 rail · Info 1 feature · Home 5 sponsored tiles | 2–4 per page |
| Rotating | Shares one space with N others on a ~4 second cycle. | Home 2 footer carousel · Watch 5 feature carousel · Watch 1 band | Unlimited |
| Directory | Below the fold. Reached only by scrolling. | Watch 3 row 2 · Info 2 list positions 7+ · Watch 4 rows 3+ | Unlimited |
A rotating slot is 30 full-width appearances
At a ~4 second dwell a carousel plays 15 creatives a minute — 150 over a ten-minute stretch. Split five ways, every advertiser gets 30 full-width appearances. Even a six-slot rotation puts each one back on screen every 24 seconds. Sell the share of the space, not a fraction of an impression, and cap the rotation at six so the number stays defensible.
Placement and duration, never impressions
You can promise position, placement, term, and the number of rooms it runs in. You cannot promise impressions, clicks or dwell — the platform doesn't record them. Price on guaranteed exposure across a room count and a term, the way in-room print and signage has always been sold, and the missing reporting stops being an objection.
Give every advertiser their own QR
QR has to be baked into the artwork anyway, so make it work for you: a distinct short link per advertiser makes scans attributable. It is the only response data that exists on this platform, and the one thing that renews a contract. Put it in the creative spec as a requirement, not an option.
Zones split one slot across buildings
Rooms group into zones — named or temporary, added individually, by range, or by CSV, and typed in-room or public. A restaurant can own the Home banner in one tower while a show owns it in another, from a single build. Confirm the deployed hardware per building before you sell a tower-specific placement.
- Make the Home footer a carousel and grow it to 144. One setting and one number, and the most-seen slot on the property goes from one advertiser at 15% of the page to five or six at a fifth of it.
- Set the list container to a clean row count. Run your numbers through the calculator so nothing clips mid-entry and every premium position is deliberate rather than accidental.
- Turn the screensaver on and sell it. Five full-screen 4K placements, to a guest who left the TV on — on most properties it's switched off entirely.
What to send MVM
Layout changes are built by MVM, so a build request needs to arrive complete. Once the layout exists, the property can edit the content inside the containers itself. Work down this list.
- Focus hex color
The color that highlights the guest's current position. One per property, on every page and the side nav — and say whether it should fill the container or outline it. - Header text default — font face · weight · size · color
Any individual element can override this later. - Subheader text default — font face · weight · size · color
- Body text default — font face · weight · size · color
- Button text default — font face · weight · size · color
- Layout
One of the examples in this kit, or your own drawn inside the canvas specs.- Page background — solid color, gradient, image or video. If color: the hex code and opacity for each. If image or video: the file.
- All assets and content, plus where each one goes on the page.
- If a carousel is used — should it advance automatically, or only on guest input?
- Watch page — same three points as above
- Property Info page — same three points as above
- Images or video — up to 5 images, or 1 video
Plus the inactivity timeout: 30 min · 45 min · 1 hr · 1.5 hr · 2 hr. Leave it off entirely if the space isn't sold.
- A visual mockup
However rough. We'll get as close to it as the platform allows — but it may not come back exactly, so send it as the intent rather than a contract.