---
# System prepended metadata

title: Animus Financial Concept
tags: [design, documentation]

---

###### tags: `documentation` `design`

# Animus Financial Concept

First things first. AFC Formalization.

I consider it as a fundamental prerequisite to formalize the financial concept for two reasons:

1. Then we have an exact definition
2. We can directly implement that into any kind of simulation. Or even as smart contract.

So this is the prerequisite to start the most simple implementation.

## Most simple Implementation

For simplicity purposes I will start to build a service which models the whole state of the financial System as thingy^^ - because I'm used to that and like it very much.

It will be a service unit accessible over an API.

The first most simple Implementation will run on RAM only. So it is meant to test only small scenarios.

We could label it `Animus Demo Engine 0.1.x` (ADE)

## Next Necessary Part
For Testing Scenarios it is essential to have some kind of Control Interface.

This will evolve aside of the ADE driven by the natural needs to test the current situation.

Optimization Efforts for this part will only be valueable in 2 Key areas:

 - Easy creation of Demo Scenarios
 - Inspection of the current State -> presentable visualizations

## Further Optimizations
 - At some point we probably want to have a Database managing the state, rather than the RAM.
 - ...



## The API
The API will be reduced to send POST commands to any of those endpoints. POST gives us the possibility to provide data and actually the only thing we really want is to call a function from the service and receive the answer.

So it's really unnecessary to deal with any HTTP stuff from the perspective of dealing with services.

### /importState
#### Arguments
```javascript
{
    fullState: Object, 
    token: String
}
```
#### Return
```javascript
{ok: true}
```
#### on Error
```javascript
{
    ok: false, 
    error: String
}
```
#### Common Errors

### /exportState
#### Arguments
```javascript
{token:String}
```
#### Return
```javascript
{
    ok: true, 
    fullState: object
}
```
### on Error
```javascript
{
    ok: false, 
    error: String
}
```
#### Common Errors

### /saveState
#### Arguments
```javascript
{
    stateID:String, 
    token: String
}
```
#### Return
```javascript
{ok: true}
```
### on Error
```javascript
{
    ok: false, 
    error: String
}
```
#### Common Errors

### /loadState
#### Arguments
```javascript
{
    stateID:String, 
    token: String
}
```
#### Return
```javascript
{ok: true}
```
#### on Error
```javascript
{
    ok: false, 
    error: String
}
```
#### Common Errors

### /createPerson
#### Arguments
```javascript
```
#### Return
```javascript
```
### on Error
```javascript
{
    ok: false, 
    error: String
}
```

### /removePerson
#### Arguments
```javascript
```
#### Return
```javascript
```
### on Error
```javascript
{
    ok: false, 
    error: String
}
```

### /createOrganisation
#### Arguments
```javascript
```
#### Return
```javascript
```
### on Error
```javascript
{
    ok: false, 
    error: String
}
```
#### Common Errors

### /removeOrganisation
#### Arguments
```javascript
```
#### Return
```javascript
```
### on Error
```javascript
{
    ok: false, 
    error: String
}
```
#### Common Errors

### /processTaskCompletion
#### Arguments
```javascript
```
#### Return
```javascript
```
### on Error
```javascript
{
    ok: false, 
    error: String
}
```
#### Common Errors

