GROUPSPACE
Organizations

An org chart your community can enforce

Departments, divisions, positions and the people in them — structured once, then read by every other module.

Organization types

A registry, not a dropdown

An org type bundles vocabulary, capabilities and a starter template, so picking one renames the whole console.

Type registry

workspace vocabulary
6 built in
TypeOrg nounUnit nounPosition nounMember noun
Federal organization
AgencyDivisionRankOfficer
Local government
DepartmentDivisionPositionEmployee
Private business
CompanyDepartmentJob titleEmployee
Nonprofit or civic
OrganizationCommitteeOfficeVolunteer
Club or community
ClubCommitteeMember roleMember
Custom
You name itYou name itYou name itYou name it

Capabilities decide who may do what

Who can tax whom is a data question, not a pile of conditionals. A type declares its flags, and the tax engine, the treasury and the public directory read them.

Custom is a first-class type
Name the org, unit, position and member nouns yourself, then set the capability flags by hand.
Templates on creation
A local government arrives with police, fire and public works already stubbed, so setup is an afternoon.
Several orgs, one workspace
A government, three businesses and an airline share one tenant — and can tax and license each other.

Capability flags

orgtype.capabilities
FlagWhat it unlocks
Levies taxesCan define tax policy over a jurisdiction
TaxableIs subject to another org's tax policy
Holds a treasuryOwns a real ledger account, not a naming convention
Issues licensesCan gate whether another org may operate
Employs membersHas positions with wages and payroll
Public directoryAppears on the workspace's public org list
The tree

Workspace, org, unit, position, assignment

Four levels below the tenant, each earning its place, with units nesting as deep as your structure goes.

Org
The entity with a type, a charter, a treasury and a tax relationship with other orgs.
Unit
A node in the chart with a parent. Drag SWAT under Patrol and the whole tree redraws.
Position
A rank or job title. Carries sort order, callsign prefix, wage, headcount limit and permissions.
Assignment
A person holding a position, with a start date, an end date and a status. Tenure is first class.

Los Santos Police Department

org_lspd · local government
Treasury
Office of the Chief
Patrol Division
SWAT Team
K-9 Unit
Traffic Enforcement
Internal Affairs
Tenure is not cosmetic. Start and end dates on an assignment are what make employment history, time-in-rank promotion rules and correct payroll proration possible. One extra table, three features.
Positions

A rank is a real object

A position carries pay, a callsign prefix, a headcount limit and a reporting line, not just a colour.

Positions · Patrol Division

rank order, high to low
Enforced
PositionCallsignPay rateHeadcountReports to
Chief1C-60 GSD/h1
Captain1L-45 GSD/h3Chief
Lieutenant2L-36 GSD/h6Captain
Sergeant3S-28 GSD/h12Lieutenant
Officer4O-20 GSD/hnoneSergeant

Headcount limits

There is exactly one chief. Set the limit and the console refuses the second assignment instead of arguing about it later.

Reporting lines

reportsTo draws the solid line between positions, which is what turns a list of ranks into a chart.

Callsign prefixes

Assignments inherit the prefix from their position, so 3S-14 is a sergeant everywhere it appears.

Permissions

Every check carries a scope

Knowing that someone may read arrest records is useless until you answer whose, so scope is part of the grant.

Permission model

module.resource.action:scope
records.arrest.read:org
ScopeWhat it covers
ownRecords they authored, their own clock sessions
unitTheir own unit and everything nested beneath it
orgAnything belonging to their organization
workspaceEverything in the tenant
Permissions attach to positions, so a promotion changes access on its own
Grants and denies per position, with wildcards like records.*.read
Deny always beats grant, no matter which assignment it came from
Effective access is the union of grants across every active assignment
Resolution walks narrowest to widest and takes the widest grant that applies
Workspace owners and admins bypass, and that is a separate thing from rank
Two different roles. Workspace membership decides who administers GROUPSPACE. Position assignment decides who someone is in the fiction. A community owner is often a low-rank character in-world, and conflating the two is a trap.
Members

A directory that knows the structure

Invite, assign, promote, transfer and terminate — with the history of every move kept behind it.

Member directory

org_lspd
Invite
MemberPositionTime in rankStatus
AM
Ava Mercer
Patrol Division
Captain1y 2mActive
RV
Rio Vance
SWAT Team
Sergeant7mActive
KD
Kex Duval
Traffic Enforcement
Officer3wProbation
NO
Nia Okafor
Internal Affairs
Lieutenant2y 4mOn leave

Invites

Invite by email, accept, land on a position. Revoke a pending invite before it is used.

Bulk actions

Promote, transfer between units or terminate a selection without opening four screens.

Employment history

Every assignment keeps its start and end, so the record of who held what survives the reshuffle.

Stop duct-taping your community together.

GROUPSPACE is in invite-only early access. Talk to us and we will get your community on the list.