{"action":"created","issue":{"url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem/issues/6","repository_url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem","labels_url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem/issues/6/labels{/name}","comments_url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem/issues/6/comments","events_url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem/issues/6/events","html_url":"https://github.com/ReversingSpace/cpp-gamefilesystem/issues/6","id":366610302,"node_id":"MDU6SXNzdWUzNjY2MTAzMDI=","number":6,"title":"FileSystem API","user":{"login":"awstanley","id":278962,"node_id":"MDQ6VXNlcjI3ODk2Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/278962?v=4","gravatar_id":"","url":"https://api.github.com/users/awstanley","html_url":"https://github.com/awstanley","followers_url":"https://api.github.com/users/awstanley/followers","following_url":"https://api.github.com/users/awstanley/following{/other_user}","gists_url":"https://api.github.com/users/awstanley/gists{/gist_id}","starred_url":"https://api.github.com/users/awstanley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awstanley/subscriptions","organizations_url":"https://api.github.com/users/awstanley/orgs","repos_url":"https://api.github.com/users/awstanley/repos","events_url":"https://api.github.com/users/awstanley/events{/privacy}","received_events_url":"https://api.github.com/users/awstanley/received_events","type":"User","site_admin":false},"labels":[{"id":719674615,"node_id":"MDU6TGFiZWw3MTk2NzQ2MTU=","url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":719674616,"node_id":"MDU6TGFiZWw3MTk2NzQ2MTY=","url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem/labels/help%20wanted","name":"help wanted","color":"33aa3f","default":true},{"id":719674619,"node_id":"MDU6TGFiZWw3MTk2NzQ2MTk=","url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem/labels/question","name":"question","color":"cc317c","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-10-04T03:40:30Z","updated_at":"2018-10-06T02:19:30Z","closed_at":"2018-10-06T02:19:30Z","author_association":"CONTRIBUTOR","body":"As the FileSystem API got hosed during the 2018 API rewrite, it needs to be redesigned.\r\n\r\nThe various discussions we've had on Discord seem to point to the following considerations:\r\n\r\n- `reversingspace::storage` is the current API support, which is designed to be used by archives (or as the underlying system);\r\n- Either some kind of mounting system, or a hashing system, is needed as a frontend.  There are various approaches here and it seems to be indelicate to impose a fixed structure here for read *and* write, but that it's not inconsiderate to assume a userland directory is a traditional system (typically something like `%APPDATA%` on older Windows systems, or `~/.<product>` on Linux).\r\n\r\nThe issue is two part:\r\n\r\n 1. Should there be an imposed read system in front (and if so, should it be templated or plugin-driven to allow a storage server)?;\r\n 2. Should the userland directory be implemented such that it has zero requirements other than a path (i.e. you could use SDL or whatever technique to generate your path, pass it in, and the system interprets and executes it)?\r\n\r\n-----\r\n\r\nAdditional consideration comes from games like Factorio which allow for custom userland directories to be set.  I'm not sure if this is a direct point of relevance here.\r\n\r\nThis library could also use a CMake option to include or exclude preference directory selection (e.g. `%APPDATA%` for Windows 7, whatever the nominal path is on Windows 8/8.1/10).  Such a system would likely require iteration over older directories, though given the Windows 10 minimum, and the common path selection in Windows 7/8/8.1 anyway, it's probably best to use the (Microsoft) prescribed standard (whatever that is at the moment)."},"comment":{"url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem/issues/comments/427538728","html_url":"https://github.com/ReversingSpace/cpp-gamefilesystem/issues/6#issuecomment-427538728","issue_url":"https://api.github.com/repos/ReversingSpace/cpp-gamefilesystem/issues/6","id":427538728,"node_id":"MDEyOklzc3VlQ29tbWVudDQyNzUzODcyOA==","user":{"login":"awstanley","id":278962,"node_id":"MDQ6VXNlcjI3ODk2Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/278962?v=4","gravatar_id":"","url":"https://api.github.com/users/awstanley","html_url":"https://github.com/awstanley","followers_url":"https://api.github.com/users/awstanley/followers","following_url":"https://api.github.com/users/awstanley/following{/other_user}","gists_url":"https://api.github.com/users/awstanley/gists{/gist_id}","starred_url":"https://api.github.com/users/awstanley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awstanley/subscriptions","organizations_url":"https://api.github.com/users/awstanley/orgs","repos_url":"https://api.github.com/users/awstanley/repos","events_url":"https://api.github.com/users/awstanley/events{/privacy}","received_events_url":"https://api.github.com/users/awstanley/received_events","type":"User","site_admin":false},"created_at":"2018-10-06T02:19:30Z","updated_at":"2018-10-06T02:19:30Z","author_association":"CONTRIBUTOR","body":"#8 \r\nHandled by pull request."}}
{"actor":{"display_login":"awstanley"}}