Manifest Format¶
Every Squared app has a manifest.json at its root. This file defines the app's identity, entry point, and permissions.
Structure¶
{
"id": "com.example.myapp",
"name": "My App",
"version": "1.0.0",
"entry": "Main.qml",
"icon": "assets/icon.png",
"author": "Your Name",
"description": "A short description of the app",
"permissions": ["network"]
}
Fields¶
Required¶
| Field | Type | Description |
|---|---|---|
id |
string | Unique reverse-domain identifier (e.g., com.author.appname) |
name |
string | Human-readable display name |
version |
string | Semantic version (e.g., 1.0.0) |
Optional¶
| Field | Type | Default | Description |
|---|---|---|---|
entry |
string | "Main.qml" |
Entry QML file relative to qml/ |
icon |
string | (empty) | Icon path relative to app root |
author |
string | (empty) | Developer name |
description |
string | (empty) | Short app description |
permissions |
array | [] |
List of permissions |
Validation Rules¶
ID format¶
The id must be a reverse-domain identifier with at least two segments:
com.squared.myapp # valid
org.example.tool # valid
myapp # invalid — needs at least one dot
com # invalid — needs at least two segments
Pattern: ^[a-zA-Z][a-zA-Z0-9]*(\.[a-zA-Z][a-zA-Z0-9]*)+$
Entry file¶
The entry QML file must exist at qml/<entry>. If omitted, defaults to qml/Main.qml.
CLI validation¶
Running squared validate checks:
- Errors (exit code 1): missing/invalid JSON, missing required fields, invalid ID format, missing entry file
- Warnings (exit code 2): missing
authorordescription, total size > 5 MB