## Critical User Journey 3: Edit a function definition
**Job To Be Done**
When <situation> I want to <job> so I can <expected outcome or motivation>
**Acceptance criteria**
An editor user...
* [x] ~~Should be able to find a function from the Wikifunctions landing page and navigate to it~~ decoupled to T285424
* [x] Should be able to navigate to the editing page of this function
* [x] Should be able to seamlessly add or edit multilingual information to the function (function name, aliases and/or input labels) in one or more languages
* [x] Should be able to save my changes successfully along with a edit summary so that other users can easily understand the change history for the function
* [x] If the edition is not successful, should be able to understand what was wrong and how to fix it
An expert editor user... (to use the right rights is a Goal 6 task, for now we separate between logged in and not-logged in users)
* [x] Should be able to edit the accepted value type for each input field
* [ ] Should be able to remove input fields ~~(as long as there is at least one input field left for the function definition)~~
* [x] Should be able to add new input fields
* [x] Should be able to change the expected output type
* [x] Should be aware of how my changes will impact the behavior of the function
---
##Completion checklist
//During the review process, edit and check these items to reflect the completion status of this epic//
* **Functionality**
* [ ] Every project (repository) involved in this user story has its separate Phabricator task
* [ ] Every related task should passes its completion checklist
* [ ] The tests for every involved project pass successfully
* [x] The build process for every involved project passes successfully
* [x] Coverage for every involved project has improved or stayed the same
* **Design**
* [ ] Design review on updated software
* [ ] Test concept via an Alpha, Beta or Prototype with partner communities and those potentially impacted by feature, in their preferred language
* **Documentation**
* [ ] Has related and updated documentation, E.g.:
* Internal technical changes: internal repository documentation must be updated (README.md, JSDoc, PHPDoc)
* Infrastructure technical changes: technical changes that reflect on environment, infrastructure, endpoints or any other area of interest for technical contributors should be reflected on MediaWiki extension pages.
* Product or model changes: should have related documentation updated in meta
* **Versioning**
* [ ] If changes in submodule packages are involved, every project that uses this submodule has updated submodule version and passes tests and build