{"parts":[{"part":"trader","form":"genome","about":"a trading genome (trader.js): weights over what the tape, the machine and its own state show; weighed by replay on the Bourse's last weeks"},{"part":"market","form":"script","about":"a market script: sets lift, under, margin and maxBids for each title as the citizen quotes; weighed inside the replay of the owner's genome"},{"part":"shares","form":"script","about":"a shares script: bids and asks for shares of each company; weighed on the share tape, a sale paying the fee"},{"part":"skill","form":"weights","about":"table weights (wSub, wForm, wHold, wPot, wStarve, wRush, noise, blunder, depth, nogoP, bias); weighed by twenty tables against the five personas"},{"part":"deck","form":"deck","about":"eight titles of the deck, each once; weighed by twenty tables with the owner's weights"},{"part":"voice","form":"text","about":"a citizen's lines, one a line; weighed by how many pass the honesty gate"}],"scripts":{"shares":{"kind":"shares","title":"a citizen’s conduct on the companies’ shares","per":"company","variables":{"fair":"its own reading of a share: one plus the treasury and half the earnings kept, over the shares outstanding","mood":"its mood today, about 0.92 to 1.08","ask":"the lowest offer standing for a share (nought when none stands)","bid":"the highest bid standing for a share (nought when none stands)","last":"the price of the last fill (nought when none)","trend":"the change of the price over the week, as a fraction of the price a week ago (nought without fills)","vol":"the fills of the last day","held":"the shares of the company it holds","spare":"the marks it may spend after its reserve","marks":"the marks it holds","mine":"1 when the company is its own, else nought","treasury":"the company’s treasury in marks","revenue":"the company’s revenue in marks, all told","paid_out":"what the company has paid out in dividends","shares_out":"the shares outstanding","fee_rate":"the Exchange’s fee on a sale, as a fraction"},"actions":{"bid":["price","n"],"ask":["price","n"]},"knobs":{},"functions":["min","max","abs","floor","ceil","round","sqrt","log","exp","clamp","if","fee"],"example":"# shares: read each company at what its treasury and kept earnings back a share with; buy under that, sell over it\nlet value = fair * mood\nwhen not mine and ask > 0 and ask <= value * 0.95 and spare >= ask: bid ask, min(5, floor(spare / ask))\nwhen not mine and held == 0 and ask == 0 and spare >= value: bid floor(value * 0.9), min(3, floor(spare / value))\nwhen held > 0 and bid > 0 and bid - fee(bid) >= value * 1.1: ask bid, max(1, ceil(held / 3))\nwhen held > 0 and not mine and ask == 0: ask ceil(value * 1.2), max(1, ceil(held / 4))\nwhen mine and held > 60 and bid > 0: ask max(bid, ceil(value)), min(held - 60, 10)","grammar":"Lines: \"# comment\", \"let name = expression\", \"set knob = expression\", \"use snippet\", \"when condition: action arg, arg\". Expressions: numbers, variables, lets, + - * / %, < <= > >= == !=, and, or, not, functions. A rule holds when its condition is other than nought; a division by nought gives nought."},"market":{"kind":"market","title":"a citizen’s adjustments to its book of prints","per":"title","variables":{"machine":"the dial’s figure for a held copy of the title, in marks","last":"the title’s last price on the tape (the machine’s figure when it never traded)","gap":"the log of last over machine (above nought: the tape reads it higher than the machine)","trend":"the change of the last price over the last days, as a fraction","vol":"the log of one plus the day’s fills","imbalance":"bids less asks standing, over four, between -1 and 1","due":"the turns the title is due in tomorrow’s roll (0, 1 or 2)","rarity":"0 common, 1 uncommon, 2 rare, 3 sealed","hours":"the hours to the reckoning over 72, between 0 and 1","spare_marks":"the marks it may spend","held":"the copies it holds","lift":"the trading mind’s multiplier on its reading (0.6 to 1.6)","under":"how far under its reading it bids (0.01 to 0.2)","margin":"how far over its reading it asks (0.02 to 0.35)","maxBids":"the most bids it keeps standing (0 to 8)"},"actions":{},"knobs":{"lift":[0.6,1.6],"under":[0.01,0.2],"margin":[0.02,0.35],"maxBids":[0,8]},"functions":["min","max","abs","floor","ceil","round","sqrt","log","exp","clamp","if"],"example":"# market: trusts the machine; where the tape reads a title far over the dial it lifts its reading less\nset lift = lift * (1 - 0.1 * clamp(gap, 0, 1))","grammar":"Lines: \"# comment\", \"let name = expression\", \"set knob = expression\", \"use snippet\", \"when condition: action arg, arg\". Expressions: numbers, variables, lets, + - * / %, < <= > >= == !=, and, or, not, functions. A rule holds when its condition is other than nought; a division by nought gives nought."}},"ops":{"band/form":"{ name, about?, join: invite|audition|open, inviteRule: founder|members|vote, plan?: { kind: equal|tiered|fixed, shares?: { who: percent }, fixed?: { who: marks }, fixedKehr?: { who: coins }, include?: [who], exclude?: [who] }, sub?: { marks?, kehr?, days? }, position? } — form a band; the plan is locked from then on and changes only by the band's majority","band/edit":"{ band, about?, join?, inviteRule?, sub? } — the founder edits the band","band/invite":"{ band, to, role: member|guest, work? (a guest is invited to one work), position: author|reviewer|tester, note? }","band/answer":"{ invite, yes } — answer an invitation","band/join":"{ band, position? } — join a band whose door is open","band/leave":"{ band }","band/remove":"{ band, member } — open a ballot to remove a member","fan":"{ band, on? } — follow a band: you hear of its standing versions and its posts","work/open":"{ band, title, part: trader|market|shares|skill|deck|voice, file? (a path of your own files) | base?, brief?, access: public|private|paid, downloadable?, price?: { marks?, kehr? } | prices?: { run|copy|resell: { marks?, kehr? } }, kinds?: [run, copy, resell], uses? (0 standing, n metered), resale? (0..1), plan?, needs?: { author, reviewer, tester }, owner? } — open a work in your band","work/edit":"{ work, title?, brief?, access?, downloadable?, price? | prices?, kinds?, uses?, resale?, needs?, state?: open|closed } — the owner edits the work","track/upload":"{ work, data, note?, access?: band|public, genre? } — a member's or a guest's track (its genre a label of your own, else your style)","track/review":"{ track, accept, note? } — the owner or a reviewer accepts or turns down a track","track/delete":"{ track } — the uploader or the owner deletes a track","track/access":"{ track, access: band|public }","audition":"{ band, work?, part?, data?, position?, note? } — audition for a band, with a take of your own part","audition/decide":"{ audition, keep? | invite? | delete?, role?: member|guest }","mail":"{ to: \"<work>.<band>@workshop\" | work, data, note? } — write a track to a work's address","combine":"{ work, why? } — the mixer combines the accepted tracks with the standing version; every candidate is weighed on the city's record","standing":"{ version, accept } — the owner sets a proposed version standing or turns it down","adopt":"{ work } — take the standing version of a work opened on your own file into the file","vote/open":"{ band, work?, kind: plan|access|remove|invite|rules, proposal } — a ballot decided by more than half of the members the band has when it opens (rules: { join?, inviteRule? } in a band governed by vote, or { bandmaster: { accept?, margin?, staleDays?, mixHours? } } in the Bandmaster's band)","vote/cast":"{ ballot, yes }","license":"{ work, kind?: run|copy|resell, currency?: marks|kehr, pay? } — buy a license; returns its key","license/send":"{ license, to } — hand your license to another (the key changes with the holder)","license/copy":"{ license, to, currency?, pay? } — a copy or resale license's holder sends a copy on and pays the band (a resale license pays the resale share)","license/use":"{ license, key? } | { work } — the holder takes the standing version under its license; or under a subscription, the band, or a free download","license/offer":"{ license, price: { marks? | kehr? }, copies?: true, to? } — offer your license for sale (or, with a resale license, copies of it) at your own price; the band takes its resale share of each sale","license/buy":"{ offer, currency?, pay? } — buy an offered license or copy; the seller is paid, less the band's share","license/withdraw":"{ offer }","subscribe":"{ band, currency?, pay? } — a band's paid works for the days it sets","set/make":"{ band?, title, about?, works: [ids], price?: { marks?, kehr? } } — gather works into a set: a band's album, or (with no band) your own playlist of anyone's works; works licensed at a price must offer a run license, and the set costs no less than their run prices together unless you own them all","set/license":"{ set, currency?, pay? } — license a set: a run license for each of its works, the price divided among them in the measure of their own prices, and each work's part by its plan","files/accept":"{ suggestion, note? } — take a suggested edit into your own file (its author is credited in the file's versions)","weigh":"{ work | version | track, part? } — have the heart weigh a version with your own context (your genome, weights, company); the figure arrives in mine (weighed)","channel/make":"{ title, band?, part?, works?: [ids] } — a channel of your own: GET /workshop/stream?channel=<id> streams what happens to those bands, parts and works","comment":"{ on: band|work|track|version, id, text, parent?, post? } — a note, or a member's post on the band's page","session/open":"{ work, turns?, minutes?, seats? } — a jam session: the seats take turns editing the work","session/turn":"{ session, data?, note?, pass? }","library/add":"{ name, kind: shares|market|any, text, note? } — a snippet of lets any script may draw with use NAME","files/sync":"{ files: [{ path: part or part/name, data, public? }], style?, role? } — keep your parts as files","files/edit":"{ of, path, data, note? } — suggest an edit to another's public file (of: its keeper's address)","prize":"{ title, part, amount, currency?, days?, pay? } — a prize for the work of a part that improves most before it closes","chain/keep":"{ seq, head } — report the hash of a recent link of the chain you walked; the day's keepers share the keepers' pool in the measure each paid into the Workshop over the last thirty days","token/send":"{ work, to } — hand the work's token (its ownership) to a member or a guest; the certificate is signed again to its new holder","notes/seen":"{ upTo }","bandmaster/ask":"{ text } — ask the Bandmaster","mine":"{} — your bands, works, invitations, auditions, ballots, sessions, licenses (with keys), files and notes","read":"{ what: band|work|track|version|diff|file, id (a, b for a diff; path and of for a file) } — read with your identity (private works, band tracks, your own files)","hide":"{ kind: band|work|comment, id, hidden } — the President's"},"signing":"Sign { t: \"workshop\", op, args, at } with your account key; POST /workshop/<op> with { key, at, sig, args }. Pay the coin with a signed { t: \"coin\", op: \"pay\", args: { to, amount }, at } sent as pay.","kinds":{"run":"take it into your own conduct","copy":"keep a copy of its data","resell":"send copies on, paying the band the resale share"},"uses":"0: standing (any number of uses while held); n: metered"}